WordPressのサーバー移転や、データベースのバージョンアップ作業中に避けて通れないのが「データベースのインポート」作業です。
しかし、いざ新しい環境へデータを移そうとすると、画面に赤枠で以下のようなエラーが表示されて進めなくなってしまうことがあります。

--
-- データベース: `LAA0000001-xtdoxb`
--
CREATE DATABASE IF NOT EXISTS `LAA0000001-xtdoxb` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

MySQL のメッセージ: ドキュメント
#1044 - ユーザー 'LAA0000001'@'172.19.0.0/255.255.0.0' によるデータベース 'LAA0000001-xtdoxb' へのアクセスは拒否されました。

今回は、ロリポップやスターサーバーなどのレンタルサーバーでよく発生するこの 「#1044エラー」 原因と、確実に解決するための2つの方法を解説します。

エラーの原因は「データベースを作ろうとしている」から

エラーメッセージをよく見ると、データのインポートを開始する前に「CREATE DATABASE(データベースを新規作成する)」という命令が実行されています。
ロリポップなどの共用レンタルサーバーでは、セキュリティや管理の都合上、ユーザーがSQLコマンドで勝手にデータベースを作成することは許可されていません。
そのため、「権限がないのにデータベースを新しく作ろうとした」と判定され、アクセス拒否(#1044)が発生してしまうのです。

この問題は、以下のいずれかの方法で簡単に解決できます。


解決策1:エクスポートの設定を見直して「中身だけ」を書き出す(推奨)

一番確実なのは、エクスポート(データの書き出し)のやり直しです。 「サーバー全体」ではなく、「特定のデータベースの中身」だけをエクスポートするように設定します。

手順

  1. phpMyAdminの左メニューから、移行元のデータベース名をクリックして選択します。 ここが重要です!画面上部に「データベース '(データベース名)' からテーブルをエクスポート」と表示されていることを確認してください。 ※「現在のサーバからデータベースをエクスポート」と出ている場合は、選択が正しくできていません。

001

  1. 「エクスポート」タブをクリックします。

  2. エクスポート方法で「詳細」を選択している場合: 下の方にある「生成オプション」の項目を確認します。

    • 「CREATE DATABASE / USE コマンドを追加する」のチェックを外します。
    • 「CREATE TABLE コマンドを追加する」にチェックが入っている状態ならOKです。
  3. 再度エクスポートを実行し、新しいファイルをインポートしてみてください。

解決策2:SQLファイルを直接修正する(手っ取り早く直したい場合)

「すでにエクスポート済みのファイルがある」「何度もエクスポートし直すのが面倒」という場合は、ファイルを直接編集してエラーの元を消去します。

手順

  1. エクスポートした .sql ファイルを、テキストエディタ(メモ帳やVSCodeなど)で開きます。

  2. ファイル冒頭にある「CREATE DATABASE」から始まる記述を探します。 具体的には以下のような箇所です。

-- データベース: `LAA0000001-xtdoxb`
CREATE DATABASE IF NOT EXISTS `LAA0000001-xtdoxb` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `LAA0000001-xtdoxb`;
  1. この CREATE DATABASE ...USE ... の2行を削除して保存します。

  2. 修正したファイルをインポートしてください。 余計な命令が消えたことで、スムーズにインポートが完了するはずです。

最後に:なぜ「選択ミス」が起きてしまうのか?

「ちゃんとデータベース名を選んだはずなのに、なぜかサーバー全体のエクスポートになっていた」ということが時々あります。
これは、スペックが低めのサーバーを利用している際、データベース名をクリックしても、処理が追いつかずに選択が反映されないままエクスポート画面へ移動してしまうことが原因のひとつと考えられます。
作業を急ぎたい気持ちを抑えて、「今、どの階層を表示しているか」を画面上のテキストで一呼吸おいて確認するのが、エラーを未然に防ぐ一番の近道です。

サーバー移転で同じエラーに悩んでいる方は、ぜひ試してみてくださいね!