MySQL4.0系→5.1系への移行 May 19, 2006
レンタルサーバーの移行で一番気をつかったのがデータベース。以前、WordPressサイトを分割した時に非常に苦戦したので。
今回はテーブルには手を加えず、そのまま新しいサーバに行ってくれれば良いという条件だったので、テーブルを分割するよりはまぁ簡単な方だった。 今回の手順は2ステップ。
- 旧サーバでテーブルをダンプ。今回はphpMyAdminのエクスポート機能を使用
- 新サーバにテーブルをインポート。こちらもphpMyAdminのインポート機能を使用
これだけ見ると何ごともなかったかのような感じだが、今回も注意点があった。
- 前回苦戦したAUTOINCREMENTは、phpMyAdminのエクスポートのオプションで付加できることが分かった。問題なく動作することを確認
- 前回、エクスポート時に一部の行がなぜか重複するという現象に悩まされたが、今回も発生。文字コードをeuc-jpでダンプすると重複することが分かった。UTF-8でダンプすると問題は起こらず
- MySQL4.1以降で文字コード設定のしかたが変更されており、文字化けに悩んだ。MySQL側では設定せず、phpアプリケーション側でDB接続直後に”SET NAMES utf8″を呼ぶというのが良さそうということが分かった
解決法が分かってみると簡単なようだが、問題の切り分けは結構大変だった。特にエクスポート時にデータが壊れるのはやめて欲しい。本当にデータのIntegrityが保証できてるのかどうか疑わしくなる。 一応UTF-8でダンプすれば大丈夫という感触は得たがいまだに確証は持てず。
phpMyAdminで各テーブルのデータサイズを比較してみたのだが、文字コードをeuc→utf8に変換してしまったので、そもそもサイズが合わなくて何も参考にならなかった。 「とりあえず行数は合ってるので良いか」というあやしい基準でOKとした。
サーバー移行、バージョンアップ、バックアップ&リストアなど、DBMSの移行が必要になるケースは結構あるはずだが、やってみないと分からないことが多いので困る。 防災訓練にならって自宅の環境などでリストアする練習をしておくと、いざという時あわてなくて済むと思う。面白くはないけど。
WordPressのサーバー移行手順…
レンタルサーバー乗り換えに伴って、WordPressを別のサーバーで動かすための作業を行った。うるめねっと内の全ブログで計6サイト分。 php4+MySQL4.0の環境から一気にphp5+MySQL5の環境になった….