このサイトもなんだかんだと結構前からスタートし、最初はVPSで構築していたんですが、なんか色々めんどくさくなってレンタルサーバに移行して、ゴニョニョするのは自宅サーバでやることにしてたんですが、そのレンタルサーバに変えたのがなんと2011年9月の話のようだ。さくらインターネットの契約情報を見たら、そうなってたんで、それ以前1年位はVPSを使っていたんじゃないかなと思う。
当時は、知り合いと情報サイトもどきを立ち上げようとして必死に文章を書いていた気がするけど、結局は私一人が空回りして頓挫した。その頃にVPSが管理する暇があまりなくて、セキュリティ問題が出てもイヤだって事で少し安全なレンタルサーバに移したはず。
で、このサイト(WordPress)もそれからずーっと使っているわけで、mysqlもバージョンが古いままだった。と言うわけで、アップデートしました。それまで5.1だったんですけど、5.7にアップデートしました。若干パフォーマンスが上がったかな?上がればいいなって感じです。
ちなみに、今回アップデートするためにいくつか手順を踏んだのでちょっと残しておきます。
まず、既存のデータをバックアップ。phpMyAdminで最初やったんですけど、後述する問題があって、コマンドラインでバックアップをしました。SSHでログインします。そこでコマンドを使います。
mysqldump -h mysqlxxx.xx.sakura.ne.jp -uuser -ppass -r name db_name
こんな感じで、既存のDBをバックアップ。ホスト名が違うので-hのオプションでホストを指定。これは既存のDBを調べればなんという名前になっているかはわかると思いますので旨く使います。
-rでバックアップファイルの名前、既存のDB名を入れることで作業しているディレクトリにバックアップされます。バックアップされたか、lsコマンドなんかで確認しておきます。
バックアップが終われば後は新しいところにインポートするだけです。
さくらインターネットのデータベースではphpMyAdminも使えます。ただ、これを利用した場合にファイルサイズが最大で32MBまでという制限があります。なので、あんまり更新していないけど結構長いことやっているこのサイトのデータはこのサイズでは収まりませんでした。(173MBありました)
ZIPでも取り込めるようなので試しにZIPに圧縮したところ25MBにまで小さくなったので、それを取り込んでみましたが、うまく行かなかったのでヘルプに効いたところ、コマンドラインならできまっせって返ってきたので、コマンドラインでやっていたわけです。
インポートのコマンドもそんなに難しくはないのでチャチャっとやっちゃいます。
mysql -h mysqlxxx.xx.sakura.ne.jp -uuser -ppass db_name < name
こんな感じでやります。意味はバックアップの時とあまり変わらないです。簡単に言うと新しいDBに<で入れ込むというコマンドです。nameはさっきバックアップしたフィアルで、db_nameは新しく用意したDBの名前を入れます。
ここまででデータのコピーはとりあえず完了です。
最後にやるのはWordPress側の設定を変更します。これも簡単。WordPressのインストールディレクトリにあるwp-config.phpを編集します。ファイルの33行目あたりから下を編集します。
// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'db_name');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'user');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password');
/** MySQL のホスト名 */
define('DB_HOST', 'mysqlxxx.xx.sakura.ne.jp');
説明は書いてあるとおりなんですけど、データベース名やユーザー名、パスワードを古いデータベースと同じにしていれば、ホスト名だけ変更すれば終了となります。古いホスト名もちゃんとメモっておくか、古いデータベースを消さずに残しておけば、管理画面から確認が出来るので注意しましょう。
変更後保存して動作確認すれば終了。古いデータベースは削除してしまっても問題無いと思います。私はとりあえず200MB位なので取っておいてありますけど、そのうち削除すると思います。
作業時間としては確認まで含めて10分程度で終わるのでもし古いDBを使っていてバージョンアップが出来ないなんて時にはこういうパターンもあるよって事で使ってもらえればと思います。