web-dev-qa-db-ja.com

MySQLへのSQLダンプのインポートエラー:不明なデータベース/データベースを作成できません

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' 

ルートとして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ダンプファイルをインポートするにはどうすればよいですか?

83
BryanWheelock

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

38
Bjorn Tipling

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

バグ42996
バグ40477

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

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

  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コマンドを使用する理由は、空のクリーンなデータベースから開始することを確認するためです。

49
Max Kielland

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

12
Paul Tomblin

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

4
MaysaM

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

0
wmlhust