いつも、「小規模経営者に贈る情報整理術」や当ブログをご覧いただきまして、本当にありがとうございます!
・・・と、こう書けるのもレンタルサーバーやその契約しているサーバーで利用しているデータベースが安定的に動いていて、そこに載せているWordPressが正常に動いているからですよね。
すべてのサービスに感謝したいですな。
”この人は急にどうしたのかしら?”と思ったあなた。
実はね、この前、更新したんですよ。
mysqlデータベース(以降、データベース)のバージョンを。
これがまぁ、恐くて・・・・・。
自分の契約しているレンタルサーバーがデータベースを1つしか使えないもんだから、データベースのバージョンアップを行う場合は、一旦今使っている古いバージョンのデータベースにあるデータ全部を避難させた後に、そのデータベースを削除して新たにバージョンの新しいデータベースを再作成して、そこに避難したデータを戻すという手順を踏まなければいけなかったんですよ。
こう書くだけで面倒くさそうじゃないですか?
それでも、一応無事に終ったのでどういった感じですべてをやり終えたのか、書いておこうと思ったわけです。
”自分も同じ状況じゃないかっ!”という方もいるかもしれないので、箇条書き程度ですけど、ご一緒に目を通していただけるとありがたいです。
それでは、レッツゴー!!
スポンサーリンク
気になっていたサイトヘルスのメッセージ
ある時期から、WordPressのメニューの「ツール」に「サイトヘルス」なるものが登場したんですよ。
ググったら、バージョン5.2で初登場したようですね。
この、サイトヘルスのメッセージに、次のようなメッセージが表示されていたんです。
”お前の使っているデータベースは、バージョンが古いんじゃ!新しくせいっ!”
もうちょっと穏やかな口調だったかもしれませんが、よく覚えていません。
それよりも、自分としては、”えっ、自分の使っているデータベースのバージョンってそんなに古いの?”という感覚でした。
でも、そう言われてみれば、データベースって全然いじってないよなぁ~、と思い、よくよく調べてみるとmysqlのバージョンが「5.1」となっていました。
今は、バージョンいくつなのよ、と思ったらなんと「5.6」だって。
「5.1」は10年程前のバージョンになるらしいと判明。
そりゃあ、新しくせい!と言われるわな。。。
”それじゃぁ、データベースを新しく入れ直すかぁ”
と思った矢先、自分の契約しているレンタルサーバーの特徴というか仕様を思い出したのです。
そう、ロリポップの「ライトプラン」であった環境を。
そして、このプランはデータベースを1つしか使えないという仕様を。
この場合、データベースを新しいバージョンにするにはどうしたらいいんだろう…?
よくよく調べてみると、さっき書いたような面倒くさい手順が必要だったのです。
まずは、今のデータベースのデータをエクスポート
とりあえず「phpMyAdmin」は使えるわけだから、GUIベースでデータのエクスポートはできるな、と思いまして、早速「phpMyAdmin」にログインして、メニューから「エクスポート」をしてみました。
主に気を付ける点としては、以下の設定ですかね。
- エクスポート方法:詳細
- 生成オプション:CREATE DATABASE/USEコマンドを追加する:オン
- 生成オプション:DROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENTコマンドを追加する:オン
- Data creation options:作成するクエリの最大長を5000
あらかじめ、自分でデータベースを作成しておくのであれば、「CREATE DATABASE~」はいらないんですけど、データベースがなければ作るという形なので、一応含めておいた方がいいかもしれません。
同じテーブル名などがあったら削除してから作成しますので、「DROP TABLE~」もチェックをオンにしておいた方がいいでしょう。
クエリ長は、どっかのサイトにデフォルトの「50000」だとエラーが出るような記事を見かけたので、5000に変更しました。
設定値を変更して、後は実行するだけですからエクスポートは簡単ですね。
エクスポートファイルは、「.sql」というテキストファイルなので、必要があれば自分で修正もできます。
別に契約しているレンタルサーバーでテスト
エクスポートしたデータがきちんとインポートできるかを、別に契約しているレンタルサーバー内のデータベースでテストします。
では、テストできるレンタルサーバーを他に契約していない場合はどうするか・・・
という問題があるんですが、その場合は・・・はい、ぶっつけ本番となります(笑)
テストできる環境を持っている方は、事前にテストしておいた方がいいと思います。
ロリポップでも、スタンダードプラン以上であれば、複数のデータベースを利用できるので、この場合はそれこそ全く同じ環境でテストできますね。
わたくしの環境では、他で契約しているレンタルサーバーは「コアサーバー」となり、データーベースのバージョンは「5.7」になります。
コアサーバーは、新規作成するデータベース名のフォーマットが「コアサーバーのアカウント名_新しく作成するデータベース名」と決められています。
したがって、先程エクスポートしたファイルをテキストエディタで開いて、先頭(環境にもよりますが30行目前後くらいまで)に記載されている「CREATE DATABASE~」に書かれているデータベース名をテスト環境のデータベース名に修正します。
合わせて、次の「USE~」に記載されているデータベース名も修正します。
なお、コメントとして書かれているデータベース名は修正しなくても大丈夫です。
修正したらファイルを上書き保存します。
テスト環境の「phpMyAdmin」を開いて、メニューからインポートを開きます。
エクスポートして先程データベース名を修正したファイルを選択します。
設定はそのままで、「実行」を押してみましょう。
正常にインポートできたら、インポートされたテーブルの状態などを少し確認してみてください。
もし、うまくインポートできなかったら、エラーの原因が特定できるまで、本来のレンタルサーバーのデータベースへはインポートしない方がいいでしょうね。
スポンサーリンク
データベースの削除と新規作成
さて、テスト環境でうまくインポートできれば、後は問題なくいける・・・と思います。
ただ、こればっかりはやってみないと分からない部分もあるでしょうから、本来のレンタルサーバーのデータベースではうまくいかない可能性もあります。
もう一度しつこく書いておきましょうか。
ロリポップの「ライトプラン」は、データベースが1つしか作成できないため、データベースのバージョンを新しくするには、一度現在のデータベースを削除して、新しく作り直す必要があります。
データベースを削除した際に、貯まったデータも一緒に削除されるため、データを一旦避難させるためにエクスポートが必要であり、復旧させるためにインポートが必要となるわけですね。
つまり、古いデータベースを削除した上に、新しいデータベースにうまくデータが戻らないとなると、サイトが復旧できない、という意味になるわけです。
したがって、十分に検証した上で自己責任で行ってください。
wp-config.phpの設定変更
テスト環境のコアサーバーでうまくいったので、ロリポップで今まで使ってきた「バージョン5.1」のデータベースを削除して、新しくデータベースを作成しました。
新しく作ったデータベースのバージョンがきちんと「5.6」として作成されました。
さぁ、最後のインポート作業です。
と、ここで先程、エクスポートしたファイルを開いてデータベース名をコアサーバーでのテスト環境に変更してしまっていたのを思い出しました。
危ないアブナイ・・・
本来のロリポップの環境で新しく作成したデータベース名に修正しました。
新しく作成したデータベース名は、削除したデータベース名と同じデータベース名も使えますので、同じ方がいいのであれば新しく作成したデータベース名を以前の名前と同じにしてください。
そして、無事インポートが完了し、めでたくバージョンが「5.6」となったデータベースに避難しておいたデータが構築されました。
後は、「wp-config.php」のデータベース情報を書き換えます。
ロリポップだと、ユーザー名は変わらないと思います。
データベースをバージョンアップした場合、おそらくサーバ名(ホスト名)は変更になるでしょう。
データベース名やパスワードは皆さんの構築次第です。
つまり、上記4つの設定で変更となった点を「wp-config.php」でも書き換えないと、Wordpressからデータベースへ接続できずに、接続エラーが表示されます。
修正できたら「wp-config.php」を保存して、データベースのバージョンアップ作業は終了です。
最後に
ロリポップのライトプランのようにデータベースが1つしか利用できないのに、データベースのバージョンアップのためにデータベースを再作成する必要がある場合は、今回のように危ない橋を渡らざるを得ないのですね。
わたくしの環境では、テストができたので、テストの時間も含めると大体2時間弱くらいをこのデータベース入替作業に費やしました。
後は、アクセスの多いサイトも要注意です。
訪問するユーザーが多い時間帯に今回の作業を行ってしまうと、サイトにアクセスできなくなる時間が長くなるからですね。
テストできる環境なら、テストに時間をかけて本来のデータベース更新作業は短い時間で終わらせた方が良いと思います。
アクセス数が落ちる時間帯が平日の深夜帯などであれば、作業する時間も考慮に入れておいた方がいいでしょうね。