はじめに
本サイトのデータベースが古いとWordpressの「サイトヘルス」で警告が表示されていたので、バージョンアップすることになりました。
サイトの記事数が多いとデータベースのバージョンアップはめんどくさいことになります。次回に備えて、MySQLバージョンアップの手順を詳細に書き残しておくことにします。
エディタを入手する
phpやsqlファイルを書き換える作業が必要となるので、エディタを入手します。使ったのは、「サクラエディタ」です。
普段はTeraPadというエディタを使っているのですが、ファイルの保存時にメモリーが不足しているとエラーが出て保存できない。メモリー不足なはずはないのですが、とにかく使えない。そこで、サクラエディタにしたら、難なく保存できました。
「wp-config.php」を調べる
Wordpressのデータベースアクセスについての基本情報が書かれているのが「wp-config.php」というファイルです。
このファイルに見るためには、まず、ロリポップの管理画面を開きます。
左サイドバーの[サーバーの管理・設定] ⇒ [ロリポップ!FTP]。
FTP画面の中から、目的のサイトのフォルダをクリックします。
開いた画面の下の方に「wp-config.php」があります。
これをダブルクリックで開きます。
開いた画面から、赤字の箇所をメモします(スペルチェックの赤の波線は無視して下さい)。
必要となるのは、以下の五つの情報です(括弧内はダミーの値です)。
1. WordPress のためのデータベース名 (LAA7777777-xxxxxxxxxxx)
2. MySQL データベースのユーザー名 (LAA7777777)
3. MySQL データベースのパスワード (AAAAAAAAAAAAA)
4. MySQLのホスト名 (mysql999.phy.lolipop.lan)
5. WordPress データベーステーブルの接頭辞 wp3_
次に、「wp-config.php」をダウンロードします。
開いているページの下にある[ダウンロード]ボタンをクリックしてダウンロードします。ダウンロードしたファイルは新規にフォルダを作って、そこに保存します。
データベースsqlのエクスポート
ロリポップにログインして管理画面を開きます。
左サイドバーの[サーバーの管理・設定] ⇒ [データベース]。
更新したいサイトで使っているデータベースのバージョンが5.6なのを確認。これを5.7にバージョンアップします。[操作する]ボタンをクリック。
[phpMyAdminを開く]ボタンをクリック。
別タブが開き、[phpMyAdmin]ログイン画面が表示されるので、①ユーザー名、②パスワードを入力し、③サーバの選択で使っているサーバを選択。この①②③の情報は、ロリポップの画面で確認できます。
phpMyAdminでデータベースからテーブル(sql)をエクスポート
phpMyAdmin画面で、①データベース名をクリック。読み込みが始まる。読み込みが終わったら、②[エクスポート]ボタンをクリック。
[エクスポート]をクリックすると[データベース “LAAxxxxx”からテーブルをエクスポート]画面が開くので、① [エクスポートの方法:]で、[詳細-可能なオプションをすべて表示]にチェックを入れ、② “接頭辞”である”wp3_”の部分をShiftキーを押しながら全て選択する。
画面下方にある [生成オプション] 追加コマンドの2カ所にチェックを入れる。
最後に、一番下にある[実行]ボタンを押して完了です。
「データベース名.sql」というファイルがダウンロードされます。
注:本サイトの場合、このファイルサイズが 230Mb もありました。このファイルサイズが大きいことがトラブルを引き起こす原因となります。
新しいデータベースを作る
新しいバージョン(MySQL5.7)のデータベースを作ります。
ロリポップの管理画面で、[サーバーの管理・設定] ⇒ [データベース]。
データベース画面が開くので、[作成]ボタンをクリック。
データベース作成画面が開くので、書いてある通りの必要事項記入し、[作成]をクリック。これで、MySQL5.7の空のデータベースの作成完了。
後は、先ほどダウンロードしたテーブルをアップロードします。
新データベースへのテーブルをインポートする
インポートに失敗し、「#1044」というアクセス拒否エラーが出たので、事前に対応します。
先ほどダウンロードした「データベース名.sql」を修正します。この修正はメモ帳ではできないので、冒頭でダウンロードした「サクラエディタ」を使います。
「サクラエディタ」を起動し、「データベース名.sql」を開きます。
ここで、古いデータベース名を新しいものに書き直して上書き保存(UTF-8、BOMなしで保存されるはずです)。
さて、いよいよインポートです。
エクスポートしたときと同じ手順で「phpMyAdmin」を開きます。
前回は、「エクスポート」をクリックしましたが、今回は、「インポート」をクリック。
③で、先ほど修正した「データベース名.sql」を選び、[実行]ボタンをクリック。5分程度待てばうれしい「成功」の文字が表示されます。
「wp-config.php」の修正
データベースを新規に作っただけでは、サイトとの繋がりがありません。これを関連づけるため、「wp-config.php」の修正を行います。
最初の方でダウンロードした「wp-config.php」をエディタで開き、情報を新しいものに変更します。
変更する箇所は、上で説明した、
1. WordPress のためのデータベース名 (LAA7777777-xxxxxxxxxxx)
2. MySQL データベースのユーザー名 (LAA7777777)
3. MySQL データベースのパスワード (AAAAAAAAAAAAA)
4. MySQLのホスト名 (mysql999.phy.lolipop.lan)
の部分です(2.は同じなはず)。これを新しいデータに書き換え、ファイルを上書き保存します。
「wp-config.php」のアップロード
「wp-config.php」ファイルをアップロードする前に、『現在の属性』を変更する必要があります。通常は「400」になっている筈です。これを「600」に変更し[保存]します。これでファイルの上書きが可能となります。作業完了後は、元の「400」に必ず戻すこと!
① 同じ画面の左上にあるアップロードアイコンをクリックし、
② [上書き]にチェックを入れ、
③ [ファイルを選択する]ボタンで修正した「wp-config.php」ファイルを選択し、
④ [アップロードする ]ボタンでアップロードします。
サイトが正常に表示されていることを確認したら、「wp-config.php」の[現在の属性]を[400]に戻して作業は終了です。
古いデータベースを削除
サイトを確認し、不具合が見つからなかった場合、古いデータベースを削除します。
ただし、正常にサイトが表示されているように見えて、後で不具合に気づくかも知れないので、古いデータベースを削除するのは2、3日経ってからの方がよいでしょう。もしかしたら、正常に表示されていたのはキャッシュで、本当はエラーが出ている、かも。まずそれはないと思いますが、何事も慎重に。
この古いデータベースを放置しておくと後でめんどくさいことになります。削除してよいかどうかが分からなくなるからです。
データベースはサイズの大きなファイルなので、不要なものは確実に削除しましょう。ただし、細心の注意を払い、間違いなく不要なデータベースであることを何度も確認してから削除しましょう。
おわりに
今回の作業にあたって、「ブログのblog」さんの『ロリポップ・データベース(MySQL5.7)バージョンアップデートの手順』という記事を参考にさせて頂きました。
今回の記事で分かるとおり、MySQLのバージョン更新作業はとてもハードルが高いものです。ネット上によく見かけるのが、他人の記事をパクっただけの記事。本当に何の役にも立ちません。
知識のある(らしい)ヒトの書く記事は、とても不親切で、結局、バージョンアップに失敗。様々なエラーが発生するからです。
その点、「ブログのblog」の記事は、とても懇切丁寧に説明されており、感心しました。感謝、感謝です。
今回の記事は、自分の備忘録として掲載したもので、余計なことは書かずに、手順のみ記載しました。本サイトとは別のサイトも同じ作業をしなければならないので気が滅入ります。なぜ、自動更新できないのかと腹立たしく思うのですが、他に選択肢がないので諦めます。
今回の記事は、あくまでも管理人の備忘録なので、ロリポップ以外のサーバーについての方法は全く分かりません。
以前、ロリポップの電話サービスでお世話になった女性担当者の方は、とても親切に対応して頂きました。しかし、データベースの更新はロリポップのサービス対象外になっています。
たぶん、データベースの更新で多くの人が困っているのではないでしょうか。
ロリポップのライトプランで今回の作業を行うのはあまりにもリスクがありすぎです。スタンダードプランに変更してから作業することを強くお勧めします。理由は、ライトプランの場合、データベースを一つしか作ることができないため、現在使っているデータベースを削除しないと新しいデータベースを作れないからです。削除後に設定がうまくいく保証はありません。削除したデータベースは元に戻せません。管理人なら絶対にやらない作業です。
長年ブログを運営していて重要だと感じるのは、変更履歴の保存です。
バックアップをとったと思っていても、後で見ると、どれが必要なバックアップなのか分からなくなります。そうなると、せっかくとったバックアップはゴミになります。
重要なのは、バックアップがいつの時点で、なぜ、バックアップを取ったのかを記録しておくこと。バックアップの時点はファイルのタイムスタンプで分かりますが、それだけの情報では、ダメなのです。怖くてそんなファイルを使うことができない。
バックアップを取る場合は、いつ、何の目的でバックアップしたのかをメモ帳などに記載して、バックアップと同じフォルダに入れておく必要があります。
今回の作業では、「なんでも保管庫2バックアップデータベース更新20221213」というフォルダに、「古い設定」というフォルダを作り、wp-config.phpとsqlファイルを保存。さらに、「新しい設定」というフォルダを作り、同様に新しいwp-config.phpとsqlファイルを保存。加えて、メモ帳に、古い設定諸元と新しい設定諸元を記入して保存。これで、何年経っても、同じ作業を行うことが可能になります。
データベースのエクスポートでセキュリティエラーが発生
「なんでも保管庫2」のデータベースアップデートはほぼ問題なくできたのですが、同じ作りの「なんでも保管庫3」でやろうとしたら別の問題が発生しました。
データベースのエクスポートする時、なんと、ESETセキュリティがウイルスを検知し、アクセスを遮断してしまいます。
mysqladminでウイルス報告・サイト改ざん報告はないので、ESETセキュリティの誤検出だと思いますが、あまり気持ちのよいものではありません。いろいろ調べた結果、誤検出と判断し、ESETを10分間停止してダウンロードしました。
この関連の操作と確認作業、ウイルスチェックに半日費やすことになりました。とほほ。
気づいたのですが、データベースの更新を行うと、当日のアクセスカウントがゼロになります。