2009-07-03 47 views
1

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

mysqldumpを使用している場合、mysqlテーブルをダンプするだけですが、mysqlコマンドを使用して復元すると、エラーが発生します。 エラー1064(42000)at line 3062:SQLにエラーがあります構文;右の構文は、事前にラインで「ENGINE = MyISAMテーブルのDEFAULT CHARSET = latin1のBTREE )を使用して、」

+1

は、これは私が5.1インスタンス上でそれを復元していますServerFaultの –

答えて

2

あなたが5.1バックアップを復元しているが6

感謝を近く使用するMySQLサーバのバージョンに対応するマニュアルを確認してください〜5.0インスタンス。 このダンプを5.0にロードする場合は、テーブル定義から 'USING BTREE'を削除する必要があります。

+0

に行くべきではありません。 –

+0

申し訳ありませんが、私は5.1インスタンスを復元している5.0インスタンスを使用していることを確認しました。 ありがとうございます。 –

3

解決策の1つは、データなしでスキーマをダンプし、 'USING BTREE'の代わりに検索を行い、dbを作成し、テーブル定義なしでダンプをロードすることです。

または、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 | ... 
関連する問題