87

SQL ダンプ ファイルをインポートする方法がわかりません。最初にMySQLでデータベースを作成しないと、データベースをインポートできないようです。

database_nameこれは、まだ作成されていない場合に表示されるエラーです。

username= 元のサーバーのデータベースにアクセスできるユーザーのユーザー名。
database_name= 元のサーバーのデータベースの名前

$ mysql -u username -p -h localhost database_name < dumpfile.sql   
Enter password:  
ERROR 1049 (42000): Unknown database 'database_name' 

root として MySQL にログインし、データベースを作成すると、database_name

mysql -u root  
create database database_name;  
create user username;# same username as the user from the database I got the dump from.  
grant all privileges on database_name.* to username@"localhost" identified by 'password';  
exit mysql

次に、SQL ダンプのインポートを再試行します。

$ mysql -u username -p database_name < dumpfile.sql  
Enter password:  
ERROR 1007 (HY000) at line 21: Can't create database 'database_name'; database exists

SQL ダンプファイルをインポートするにはどうすればよいですか?

4

5 に答える 5

51

これはMySQLの既知のバグです。

バグ 42996
バグ 40477

ご覧のとおり、これは 2008 年以来の既知の問題であり、まだ修正されていません!!!

回避策
まず、インポートするデータベースを作成する必要があります。テーブルは必要ありません。その後、データベースをインポートできます。

  1. 最初に MySQL コマンド ラインを起動します (必要に応じてユーザー名とパスワードを適用します)。
    C:\>mysql -u user -p

  2. データベースを作成して終了

    mysql> DROP DATABASE database;  
    mysql> CREATE DATABASE database;  
    mysql> Exit  
    
  3. 選択したデータベースをダンプ ファイルからインポートします
    C:\>mysql -u user -p -h localhost -D database -o < dumpfile.sql

localhost は、インポート先の MySQL サーバーの IP またはドメインに置き換えることができます。mysql プロンプトで DROP コマンドを使用する理由は、空でクリーンなデータベースから開始することを確認するためです。

于 2010-06-13T23:55:46.710 に答える
40

SQL ファイルを開き、既存のデータベースを作成しようとする行をコメント アウトします。

于 2009-05-13T17:37:17.517 に答える
12

データベース ダンプには、データベースを作成するための情報が含まれているようです。そのため、MySQL コマンド ラインにデータベース名を指定しないでください。新しいデータベースを作成し、それに切り替えてインポートを行います。

于 2009-05-13T17:43:59.910 に答える
4

直接管理または cpanel でデータベースを作成する場合は、メモ帳またはメモ帳 ++ で SQL を編集し、CREATE DATABASEコマンドをCREATE DATABASE IF NOT EXISTSin line22に変更する必要があります。

于 2013-03-30T13:31:50.543 に答える
0

コマンドラインを使用して自分でデータベースを作成します。その後、再度インポートしてみてください。動作します。

于 2017-04-12T09:52:30.947 に答える