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ダンプファイルをインポートするにはどうすればよいですか?
Sqlファイルを開き、既存のデータベースを作成しようとする行をコメント化します。
これは、MySQLの既知のバグです。
ご覧のとおり、これは2008年以降の既知の問題であり、まだ修正されていません!!!
AROUND
最初にインポートするデータベースを作成する必要があります。テーブルは必要ありません。その後、データベースをインポートできます。
最初にMySQLコマンドラインを起動します(必要に応じてユーザー名とパスワードを適用します)C:\>mysql -u user -p
データベースを作成して終了する
mysql> DROP DATABASE database;
mysql> CREATE DATABASE database;
mysql> Exit
ダンプファイルから選択したデータベースをインポートしますC:\>mysql -u user -p -h localhost -D database -o < dumpfile.sql
Localhostを、インポート先のMySQLサーバーのIPまたはドメインに置き換えることができます。 mysqlプロンプトでDROPコマンドを使用する理由は、空のクリーンなデータベースから開始することを確認するためです。
データベースダンプには、データベースを作成するための情報が含まれているようです。したがって、MySQLコマンドラインにデータベース名を付けないでください。新しいデータベースを作成し、インポートに切り替えるために切り替えます。
直接管理またはcpanelでデータベースを作成する場合、notepadまたはnotepad ++でSQLを編集し、22行目でCREATE DATABASE
コマンドをCREATE DATABASE IF NOT EXISTS
に変更する必要があります。
コマンドラインを使用して自分でデータベースを作成します。その後、もう一度インポートしてみてください、それは動作します。