1

mysql データベースのバックアップを取りましたが、それを復元しようとすると、ストアド プロシージャが復元されません。mysqldump コマンドで --routines を使用するバックアップのような方法はありますか。mysql でそのようなことを行うことはできますか。

mysqldump を使用している場合は mysql テーブルをダンプしているだけですが、mysql コマンドを使用して復元している場合はエラーが発生します - 3062 行目のエラー 1064 (42000): SQL 構文にエラーがあります。6 行目の 'USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=latin1' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

前もって感謝します

4

2 に答える 2

3

1 つの解決策は、データなしでスキーマをダンプし、「USING BTREE」の検索置換を実行し、データベースを作成して、テーブル定義なしでダンプをロードすることです。

または、un*x シェルで、perl が使用可能であると仮定すると、これはフル ダンプを使用して直接実行でき、perl (または awk、sed、ruby...) などでファイルをフィルタリングできます。

cat name-of-dump.sql | perl -pe 's/USING BTREE//' | mysql name_of_db

または、ダンプが圧縮されている場合:

zcat name-of-dump.sql.gz | ...
于 2012-05-17T18:20:53.210 に答える
2

5.1 バックアップを 5.0 インスタンスに復元しています。このダンプを 5.0 にロードする場合は、テーブル定義から「USING BTREE」を削除する必要があります。

于 2009-07-03T12:00:40.063 に答える