MySQLのインポートエラー | #1044 – Access denied for user ‘[user_name]’ to database ‘[db_name]’

ローカル(XAMPP環境)のデータベースをエクスポートして、別のサーバーのデータベースにインポートしようと思ったら、エラーで怒られました。

以下がphpMyAdminで操作した際に表示されたメッセージです。

エラー
実行した SQL:

— データベース: `[db_name]`

CREATE DATABASE IF NOT EXISTS `[db_name]` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

MySQLのメッセージ: ドキュメント
#1044 – Access denied for user ‘[user_name]’ to database ‘[db_name]’

これ、ロリポップのサーバーにインポートしようとしたんですが、つまるところ既に存在しているデータベース上に新しいデータベースを作ろうとして怒られている感じですよね。ロリポップのMySQLって、データベース毎に管理画面へのログインが違いますから。

↓この命令がいけないってことですね。

CREATE DATABASE IF NOT EXISTS ~

なかったら作れ」→「作れません」って流れでしょうか。

phpMyAdminでエクスポート時にCREATE DATABASEを入れないようにできないか見てみたんですがよくわからん。
ということで、

そんなときはエディタでエクスポートしたデータを開いて、問題の一行を消してしまえ!

と消したら、あっさりうまくいきました。
ちょっと乱暴な方法のような気もしますが、エクスポートしたのが自分じゃなかった場合、エクスポートし直しもできないので、案外有効な方法かもしれません。

MySQL, 備忘録 |