Webサイトのサーバー移転を行う際に、DB(データベース)のエクスポート、インポートを行いますが、DB移行で躓くケースがあります。
特に、SSHが使用できない場合、気をつけなくてはなりません。
下記は、インポート時の良くあるエラーの1つです。
CREATE DATABASE IF NOT EXISTS [古いDB名] ~
utf8_unicode_ci;MySQLのメッセージ: ドキュメント
#1044 – Access denied for user ~
#1044 – Access denied for user表示の原因
移転前のphpMyAdminエクスポートの生成オプション CREATE DATABASE / USE コマンドを追加するをチェックすると、
エクスポートされるSQL内に、CREATE DATABASE IF NOT EXISTS [DB名]~表記が追加されてしまいます。
この「CREATE DATABASE IF NOT EXISTS [DB]」の記載は、DBがなければ、DBを作成するという内容です。
インポート時に、[古いDB]が作成されていないので、作成しようとしますが、共用サーバーなどでは作成できません。
インポートできない場合の対処方法
新しいサーバーで、phpmyadminを使用できているという事は、データベースとDBUSERが作成されていると思います。
#1044 – Access denied for userが原因でSQLをインポートできない場合は、
すでにデータベースが存在しているので、SQL内に記載されている
CREATE DATABASE IF NOT EXISTS `古いDB名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `古いDB名`;
を削除してしまいましょう。
phpmyadminでは、上手くいかない場合があるので注意が必要です。