日々のことば(ブログ)

✍️ロリポップでMySQL5.7→8.0に移行した手順まとめ|WordPressのDB移行とエラー#1046/#1044対処

おはよう。今日の記事は、個人でブログやWebサイトを運営していて、サーバーのデータベースをMySQL5.7→8.0に移行したいときに、あなたがきっと躓くポイントを、先回りして解決できるようにまとめた実体験メモだ。作業そのものは手順通りに進めれば難しくない。だけど、途中で出るエラーや、現実的な「作業環境の壁」で止まる人が多い。僕もそこに時間を使った。だからこそ、同じところで立ち止まる人が少しでも減るように、要点を厚めに残しておく。


ロリポップ!でMySQLを 5.7 → 8.0 に移行してみた(WordPress)

WordPressのサイトヘルスで、こんな表示が出た。

「MySQL 8.0以上のバージョンアップを検討して下さい」

この警告が出ると、放置していいのか不安になる。結論から言うと、ロリポップ!環境では「MySQLのバージョンを上書き更新」みたいな簡単な話ではなく、新しくMySQL8.0のデータベースを作って、旧DBから中身を移す流れになる。つまり、移行作業だ。

でも、ロリポップにログインしてデータベース周りを触ろうとすると、こう書いてあって一瞬ひるむ。

データベースについては基本的にサポート外とさせていただきます。
詳しい知識がある方のみご利用ください。

これを見ると、もう諦めたくなる気持ちも分かる。
ただ、実際にやること自体は、手順を丁寧に踏めば難しくない。

問題は「詰まるポイント」がいくつかあって、そこに当たった瞬間に、一気に不安が跳ね上がることだ。逆に言えば、詰まる場所を先に知っていれば、ストレスはかなり減る。僕が実際にやって止まったところも含めて、手順と注意点をまとめておく。


◾️ 全体の流れ(ざっくり)

  1. バックアップ(ファイル+DB)
  2. 旧データベースをエクスポート(SQLを吐く)
  3. MySQL8.0の新データベースを作成
  4. 新データベースへインポート
    ◾️【重要】MySQLファイルの編集とエラー対処──ここで詰まる人が一番多い
    ◾️ #1046 – No database selected の対処方法
    ◾️ #1044 – Access denied の対処方法
    ◾️ MySQLファイル(SQL)の編集手順(巨大ファイル問題の現実)
  5. wp-config.php を新DB用に書き換え
  6. 表示・管理画面・プラグインなど動作確認

◾️ ① まずバックアップ(これが保険)

作業前に必ずバックアップを取る。安全性を高めるため、最低でも以下2つをセットで残す。

・WordPressファイル一式(FTPで取得)
・データベース(phpMyAdminでエクスポート)

ここで現実的な話をすると、ロリポップには自動バックアップのサービスが用意されている。ただしこれは有料で、サブスク形式で毎月コストがかかる。長期運用としては安心材料になるが、今回のように「データベース移行のために一時的に保険をかけたい」という目的であれば、そこまでの装備は不要だと思う。単発の手動バックアップで十分だ。

また、ロリポップのFTP画面(ブラウザ)からの操作は、正直かなりやりにくい。特にWordPressのファイル一式のように、数が多く階層も深いものをダウンロードしようとすると、かなりのストレスになる。

だから僕は、無料のFTPアプリをインストールして、FTP経由でファイルを丸ごと落としてバックアップした。この方法がとても快適で、転送も安定していてサクサク進んだ。バックアップ作業が軽いだけで、データベース移行全体の心理的ハードルが一気に下がる。


◾️ ② 旧データベースをエクスポート(SQLを作る)

ロリポップ側で、旧データベースのphpMyAdminを開いてエクスポートする。このとき、後で詰まる人が多いので先に言う。エクスポート設定の一部がデフォルトのままだと、インポート時にエラーが出る。(対策は後述


◾️ ③ MySQL8.0 の新データベースを作る

ロリポップの管理画面から新規にデータベースを作成する。作成時にMySQL8.0になっていることを確認。新DBの情報はあとで必ず使うので、以下を控える。

・DB_NAME(新データベース名)
・DB_USER(ユーザー名)
・DB_PASSWORD(パスワード)
・DB_HOST(ホスト名)

これらの情報は、このあとSQLのインポートやwp-config.phpの書き換えで必須になる。だから、メモに控えておくか、管理画面の該当ページを開いたままにして、いつでもコピペできる状態にしておくといい。特にDB_HOSTは必ず参照することになるので、ここを手元に残しておくかどうかで作業のスムーズさが変わる。


◾️ ④ 新データベースへインポート

新DB側のphpMyAdminで、エクスポートしたSQLをインポートする。ここでエラーが出たら、ほぼこの2つ。


◾️【重要】MySQLファイルの編集とエラー対処──ここで詰まる人が一番多い

移行作業は手順通り進めれば進む。ただし、インポート時のエラーだけは別。ここで一度止まると、原因が分からず不安になりやすい。実際、僕自身もこの段階でかなり時間を使った。だからこそ、ここは厚めに書いておく。

インポート時に発生しやすいエラーは、ほぼこの2つに集約される。
・#1046 – No database selected
・#1044 – Access denied

順番に見ていく。


◾️ #1046 – No database selected の対処方法(チェックを入れる場所はここ)

これは「データベースが選択されていません」というエラー。原因は、phpMyAdminでエクスポートするときの「追加コマンド」がデフォルトのまま(=未チェック)になっていること。

ポイントはここ。

・エクスポート時
・生成オプションの「追加コマンド」
・以下2つにチェックを入れる

⚫︎ DROP DATABASE IF EXISTS コマンドを追加する
⚫︎ DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する


これだけで回避できる。


◾️ #1044 – Access denied の対処方法

#1044 – Access denied for user ‘[user_name]’ to database ‘[db_name]’

意味としては、「ユーザー ‘[user_name]’ は、データベース ‘[db_name]’ にアクセスできません」

これは、SQLファイル内に書かれているデータベース名と、実際にインポート先として作成した新しいデータベース名が一致していない場合に発生する。ロリポップではMySQL8.0用に新しいデータベースを作成する流れになるが、同じデータベース名は設定できない。結果として、旧DB名と新DB名が必ず違う状態になりやすい。ここを理解せずにそのままインポートすると、#1044 が出る。


◾️ MySQLファイル(SQL)の編集手順(巨大ファイル問題の現実)

やることは、SQLファイル内のデータベース名を新DB名に置き換えるだけ。でも、現実にはもう一段ハードルがある。SQLファイルが巨大すぎて、普通のメモ帳や軽いエディタだと開けない。固まる。落ちる。

だから僕は、EmEditor(64-bit)を入れて編集した。巨大ファイルでも普通に開けるし、検索・置換も安定していて、ここで一気に作業が進んだ。

手順は以下。

  1. エクスポートしたSQLファイルをエディタで開く
  2. SQL内に書かれている「古いデータベース名」を探す(検索機能を使えばいい)
  3. それを「新しいデータベース名」に置き換える

・CREATE DATABASE
・USE データベース名

などの記述が並んでいるので、そこにあるデータベース名を新DB名へ差し替える。このズレが残っていると、インポートは必ず失敗する。


◾️ ⑤ wp-config.php の編集と保存(最終仕上げ)

SQLのインポートが終わったら、WordPress側の接続先を切り替える。編集するのは、WordPressルートにあるwp-config.php。

編集・確認するのは次の5点。
・DB_NAME:WordPressのデータベース名
・DB_USER:データベースユーザー名
・DB_PASSWORD:データベースパスワード
・DB_HOST:データベースのホスト名
・table_prefix:テーブル接頭辞(基本触らないが念のため確認)

編集できない場合は、一時的に属性を変更して書き込み可能にする(例:400→600)。保存後は戻す。


◾️ ⑥ 最後に動作確認(落ち着いてチェック)

切り替えたら、あとは確認。

・サイト表示が崩れていないか
・管理画面に入れるか
・プラグインのエラーが出ていないか
・サイトヘルスの警告が消えているか

この段階まで来れば、勝ちだ。


◾️ まとめ

ロリポップのMySQL移行は、「ボタン一発で更新」じゃない。新DBを作って移すという、ちゃんとした移行作業になる。でもポイントさえ押さえれば進む。

・バックアップはFTPアプリでサクサクやった方が楽
・SQLが巨大で開けない問題は、巨大ファイルに強いエディタを使う
・エラーは #1046 と #1044 が大半で、原因が分かればすぐに乗り越えられる

この作業はセンスではなく、知っているかどうかだけの話だ。同じところで立ち止まる人が少しでも減ればいいと思って、体験者として厚めに残しておいた。


さて、今日も、こういったテクノロジーのみんなの積み重ねの技術に感謝しながら、今日も感謝して一生懸命生きていこう。同じ時を過ごす家族や仲間たちと支え合い、笑い合い、楽しくやっていくために。では今日も、愛と感謝を胸に。またね。


松永 修 – MUSICおさむ

松永 修/音楽名義:MUSICおさむ(シンガーソングライター)/音楽と文章の作家/国家公務員/キャリアコンサルタント

関連記事

最新記事
会員限定記事
おすすめ記事
PAGE TOP
ログイン 会員登録
会員登録