素人がmy SQL移行に失敗した話

本記事は備忘録です。

まずは本題へ移る前に、4/26の14時半頃にHPを見に来られた皆様には「Error establishing a database connection」というエラー画面を見せることになってしまい、申しわけありませんでした。

現在は、旧データベースに戻してありますので閲覧可能です。お騒がせいたしました。

mySQL5.7から8へと移行しようとしました。かなり前からWordPressの管理画面で、移行した方が指摘されていたのですが、やり方を知りませんし、やったこともないですし、やらなくてもHPはちゃんと表示されているし、レンタルサーバー(ロリポップ)の会員ページにログインすると自己責任の文字。別に急いでやる必要はないだうと思い、放置してました。

ただ、そろそろやっておかないとサポートを終了するとなった時や完全移行の時に無茶苦茶慌ててしまいそうですので、少しずつやるか、と重い腰を上げました。

ですが、データベースの移行なんてやったこともありません。意味不明です。

データベース 移行

データベース 移行 やり方

そういう言葉で検索するとやり方は一通り出てきますが、細かい部分はよく分かりません。

やり方や細かい部分も分かるのですが、それが正しいのかは分かりません。確証が得られないまま進むのは、少し責任として重い……。細かいところで確認や反応を取りながら、作業を行いたい。

と考えまして、チャットGPT Plusが使えるのではないか、と思いました。サイトに関することなどはちょくちょく質問を投げかけており、純文学における表示や描写よりは参考になる、使えるということは把握しておりました。

というわけで、チャットGPT Plusを画面の傍らに配置して作業を開始しました。

・そもそもデータベースって何? サイトの表示にどれくらい役立っているの?

今回やった作業を非常に簡単にまとめますと、マンションへの引っ越しに近いです。新しいところに建てたといつ引っ越しです。

お借りしている土地(レンタルサーバー)のマンション(旧データベース)が古くて、防犯面で不安があったり、交通面が悪くてアクセスが悪いので、別の所(新データベース)に変えたい。今持っていて、使っている家具(サイトのコンテンツや記事など)は愛着があるので、そのまま向こうでも使い続けたい。

というわけです。

・データベース移行前にやること

サイトのバックアップを取る。

旧データベースは残しておく。

この二つは必ずしてください。していないと、データベースの移行はできたのにサイトは表示できない(今回の僕です)とか、データベースの移行に失敗して旧データベースもない、などという悲劇に遭遇した時に何とかなります。

旧データベースを残すというのは想像しやすいと思います。レンタルサーバーの会員ページにログインして、データベースのページに飛んで、データベースを削除などをしなければいいので。ですが、バックアップとなりますと、どこまでがバックアップなのか? レンタルサーバーのバックアッププラン以外に何か必要なのか? と思われることでしょう。

ここでいうバックアップというのは、サイトのデータをを丸ごと自分のpcに保存しておくことです。これがないと、データベース移行をした時にアップロードするファイルを一から作成しないといけません。

・バックアップを取る

僕はWordPressの「UpdraftPlus」というプラグインを使用して、サイトのバックアップを取りました。

バックアップを取りましたので、レンタルサーバーのデータベース画面で新規のデータベースを作成し、ログインし、保存したサイトのデータをエクスポートしました。

が、失敗。画面には、

#1044 Access denied

#1046 No database selected

という言葉が表示されるのみ。詰んだ? と思いましたが、エラー文章を検索したり、チャットGPT Plusに確認したりすると、データベースにアクセス権がない云々というエラーだと分かりました。エクスポート先を変更したりして、一つずつエラーを解消していきます。

・FTPソフトを使う

ここまでやったことは、

・バックアップを取る

・旧データベースを残したまま、新規データベースを作成

・新規データベースにサイトをエクスポート

でした。このままでは、サイトのアクセスしても、旧データベースにアクセスされるようになります。

次にやることは、新規データベースにアクセスするようにファイルの記述を変更することになります。

レンタルサーバーのFTPのデータから、WordPressのconfigファイルを探し出しました。ですが、そこには読込専用の文字。書き換えをクリックしても変更できず。

レンタルサーバーのFTPを経由せずに編集する必要がありました。フリーで使える「FileZilla」をダウンロードしました。

そのソフトから、ホスト名やサーバー名などを入力し、サーバーへアクセス。configファイルの書き換えます。400の読取専用か600へと変更し、ファイルの該当箇所、

define(‘DB_NAME’, ‘新しいデータベース名’);

define(‘DB_USER’, ‘新しいユーザー名’);

define(‘DB_PASSWORD’, ‘新しいパスワード’);

を書き換え。

できたと思い、軽快にサイトへアクセス。

Error establishing a database connection

本当に意味不明でしたね。何回やってもこの画面。パスワードの不備なども考えましたが、レンタルサーバーからのアクセス自体は可能でした。

再び家の引っ越しにたとえるなら、新しい場所に引っ越しはできたし、家具の配置も終わっている。

けれど、住所変更の手続きが終わっていないために、友人たちが訪ねてきても中に入れない、そんな状況です。

つまり、サイトのURLを知っていても、データベースにきちんと情報がつながっていないため、閲覧ができない。

また、WordPressのログイン画面まではたどり着けても、ログイン後にデータベースとの接続エラーが起きるため、ページの編集や更新ができない状態でした。

そこで僕は、残しておいた旧データベースに書き換えました。こちらは無事にアクセスできます。URLを打ち込むと見慣れたトップページが表示されています。

ということで、新データベースへの移行はまだ先となります。おそらく、パスワードとかそこらへんのミスだと思うのですが……。

今回の新しいデータベースへの移行がうまくいかなかった原因は、おそらく、wp-config.phpに記載した接続情報、とりわけパスワードのミスではないかと思われます。

サーバー側には正常にアクセスできていたこと、サイト自体のデータに異常がなかったことを踏まえると、WordPressが新しいデータベースに正しく接続できていなかった可能性が高いです。

現状の自分の技術力ですと、どこでエラーが生じているのか完璧には分かりません。

本当に必要に迫られたら、新データベースへ移行しようと思います。

最後まで読んでいただき、誠にありがとうございます。

この投稿をSNSでシェア