0

もともと私は easyPHP (Windows) を使用していましたが、Mac に切り替えて MAMP を使用しました。私は時々、再フォーマットする直前に自分のデータベースをアーカイブします。エクスポートは、phpMyAdmin のルートに移動し、エクスポート機能を使用して作成されました。データをインポートしようとすると、「#1044 - データベース 'information_schema' へのユーザー 'root'@'localhost' のアクセスが拒否されました」というエラーが表示されます。他のことをすると、「#1146 - テーブル 'test_db.COLLATION_CHARACTER_SET_APPLICABILITY' が存在しません」、「#1146 - テーブル 'test_db.CHARACTER_SETS' が存在しません」、「#1146 - テーブル 'test_db.COLUMNS' がありません」などのエラーが発生しました「存在しません」および「#1046 - データベースが選択されていません」

MAMP をインポートしてアクセス エラーを無視し、続行して DB が以前の状態になるようにするにはどうすればよいですか? これを行うためのアプリを作成するのではなく、sql ダンプ内の sql ステートメントを解析するためにどのライブラリを使用する必要があるとしますか? 解析するのは難しくありません。セミコロンでステートメントが区切られているようです。しかし、エスケープとアンエスケープの問題はどうですか? どうすればそれを処理できますか?

4

1 に答える 1

2

最初のエラーは、セットアップに何か問題があることを示しています。information_schema は、システムの他の部分に関するデータ (メタデータ) を保持する内部 DB です。MySQL サーバー (または MAMP 全体) を再インストールしてみてください。

次に、ダンプ ファイルは、次のように mysql コマンド ライン クライアントを使用してインポートできます。

mysql -p -u root test_db < dump.sql

覚えておくべきことの 1 つは、ダンプを復元する前に「test_db」を作成する必要があることです。他に考えられる問題は、ダンプ/復元が異なるバージョンの MySQL (つまり、5.0 と 5.1) によって行われていることです。このために、失敗した実行をスキップするために mysql コマンド ラインで --force コマンドを試すことができますが、これではデータが正しく復元されない可能性があることに注意してください。

于 2009-02-14T11:28:42.940 に答える