SILENTSHEEP*NET > blog化作業録 > 2010年 > データベースのMySQL4からMySQL5への移行
データベースのMySQL4からMySQL5への移行
MTの運用にブログカスタマイズに・・・というよりキープだけでもほとほと手を焼いていると常日頃から云ってるくせに、このところ刺激がないので自ら苦難を求めるべくデータベースのMySQL5.1移行に挑戦。前回のSQLiteからMySQL4.0へ移行が意外にアクセスされ続けている、ニーズが強いのは僕も今回、色んなページを参考にして身に沁みて感謝できているので、ここでも主に手こずったあたりを中心に記録を残してみます。
事前準備
以前にやったのを参考に。
(1) MT4ツールのバックアップ
前回同様、一応、MT側でブログの完全バックアップを。これは後々のMT5移行のためにも。
(2) データのエクスポート
これも前回同様。必須ではないけれど、データベースに詳しいわけでもない人間には何かあったとき、シンプルなテキストベースが一番、安心できるので。
phpMyAdminでデータベース設定
以下はさくらのレンタルサーバーでの話。
(1) 旧データベースのエクスポート
さくらのサーバーコントロールパネルからデータベースの設定、管理ツールログインからphpMyAdminのページへ。ここでパスワードが何だったか・・・と思い出せないが、単純にさくらのコントロールパネルから「データベース接続パスワードの変更」に打ち込み直すと入れた。
言語が「日本語 - Japanese (utf-8)」になっていることを確認してログイン。
左サイドのデータベース名をクリックしテーブル一覧を表示させて「エクスポート」画面から「ファイルに保存する」にチェックを入れて実行。このときphpMyAdminのヴァージョンによるのかどうか、僕が実行したときは、圧縮オプションは「なし」「zip形式」「gzip形式」「bzip形式」の4つがあったと思う(画像保存していないのですみません)。
全部やってみたのが今回はいい実験になった。僕の場合、圧縮無しで24MB、gzipで4.3MB、bzipで3MBの容量となった。zip形式ではなぜかエラーになってエクスポートできず。これはエクスポートされるファイルの大きさやサーバーの混雑する時間帯にもよるのかもしれない。
sqlファイルをエディタで開いてみて文字化けしてないこと等を確認。
(2) 旧データベース(Mysql4.0)の削除
さくらのサーバーコントロールパネル上から「データベースを削除」ボタンをクリック
(3) 新データベース(Mysql5.1)の作成、旧データのインポート
データベースバージョンがMySQL 5.1 になっている状態で「送信」後、phpMyAdmin で新データベースへアクセス。
「MySQL接続の照合順序」は「utf8_general_ci」か「utf8_unicode_ci」で。
ここで「インポートするファイル」に(1)でエクスポートしたファイルを指定。最長16MBということなので、先に圧縮無しでエクスポートしたsqlファイル(24MB)はやはり読み込めずエラーになった。
ならば、とgzipファイルを読み込ませようとすると今度は。
サポートされていない圧縮形式(application/gzip)のファイルをロードしようとしました。この形式はサポートされていないか設定で無効にされています
のエラーメッセージ。確かに下側には
インポートしたファイルの圧縮方法は次の中から自動検出されます:なし,bzip,zip
でもgzipでインポートできないのなら最初からエクスポートさせるなよ(怒)・・・
もうひとつのbzip2ファイルを指定すると今度は成功メッセージが出て万歳!(・・・でもこれはぬか喜びだったことが後に分かる)
(4) mt-config.cgiの編集とアップロード
MySQL5への移行によりデータベースサーバが変わっている(「mysql***.db.sakura.ne.jp」の部分)ので、mt-congif.cgi中のDBHost部分を変更してアップロード。
後、MTの管理画面からログインしようとすると今度は次のエラー。
mt-congif.cgi中のDBPasswordが正しくないせいらしい。最初に(1)で変更したPWではダメのよう。よく分からないけど、そもそもmt-congif.cgi中のPWが見覚えないものなので、phpMyAdminのパスワードを変更する画面で「生成する」から新しいのを作って置き換えたら(一致させたら)切り抜けられた。
修正後にサインインすると今度は次のエラー。
(5) エクスポート、インポートされた両テーブルの数を要確認
次のページと同様、(3)のインポートが不完全でテーブルが足りないらしい。
ponnao-clip - [MT]MTのサーバ移行(引越し)でエラーメッセージ色々
(3)でぬか喜びした時の画像が示す通り、データベースには23個のテーブルしかインポートされていない。他の人のページでは30個とか色々あるのだけれど、各人で違うのだと思う。旧データをエクスポートする前にデータベースの個数を確認しておいた方がよいことが後にして分かる。
ちなみに自分のエクスポートしたsqlファイルをエディタで開くと「テーブルの構造」が
-- テーブルの構造 `mt_accessblogcount`
から
-- テーブルの構造 `mt_ts_job`
までアルファベット順に51個あることが分かる。インポートされた方のテーブルが途中の23個で切れているからサインインするための何かが足りないということ。
もう一度、インポートに戻る必要あり。。。なのだけれど、圧縮無しのsqlファイルでは容量オーバーでインポートできず、gzipファイルはサポート対象外、bzipファイルで不完全・・・となるとどうすれば・・・。もはMySQL4.0は削除して後戻りできないところまで来てしまっている。
圧縮無しファイルが正常なのは分かっていたので、最初、これをbz2ファイルに変換(圧縮)するしかないのかなと思った。調べてみると解凍する方はできても圧縮する方はLinuxの操作になりそう。え~と逡巡していたら、インポートできるファイルの種類にzipファイルがあったのを思い出す。(1)のphpMyAdminでエクスポートしようとしたときはエラーになっていたけれど、元のsqlファイル(圧縮無し)があるので、単純にこれをWindows標準のzip圧縮してから(=4.4MBになった)、再度インポートにリトライしたらうまくいった。
今度はちゃんと51個のテーブルが入っているのも確認でき、再び、MTにサインインできるようになった。
MT5への移行はもう少し様子を見てからにするつもり。
2010-02-14









