y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

MovableType(MySQL)のデータ復元

MovableTypeMySQL)がぶっ飛んだ際の復元手順をメモ
毎晩自動的にcronでダンプしていたのが幸いした。
壊れたデータベースをそのままに、別名のデータベースを作成し、そこにバックアップファイルからリストアを掛けるという方法を採用。mt-config.cgiのデータベース接続設定(接続先のDB名)を変更することで問題なく復元できた。
キモは、新しくDBを作成する際の指定で、default character setをutf-8にすることと、MovableTypeの接続ユーザ(ここではmtadminとする)に対して、作成したデータベースへのアクセス権を与えること。

MovableTypeで使っているデータベースの復元>
前提:リストア元の”mysqldb_backup.sql”が存在していること
内容:現在使っているデータベース(壊れたデータベース)はそのまま残しておいて、新しいDB名で復元する。mt-config.cgiで接続するDBの設定を変更する。

■データベースの復元(削除・作成)

mysql -uユーザ -p パスワード
>drop database newdb;
>create database newdb default character set utf8;
>quit

mysql -uユーザ -p パスワード newdb < /tmp/mysqldb_backup.sql

※キャラクターセットを指定しないでDBを作成すると、MovableTypeで文字化けする

■DBアクセス権限の追加

MTユーザがDBに接続できるように権限を追加

phpMyAdminでデータベースに接続
http://server/mysqladmin/index.php

データベースが出来ていることを確認
ホーム画面から”特権”を選択
ユーザ”mtadmin”を選択、”特権の編集”を選択
newdbの”データベースに固有の特権”に、ALL PRIVILEGESを追加

※SELECT,INSERT、UPDATE、DELETE、CREATE、DROP・・・・の権限を追加しても良い。

■/var/www/cgi-bin/mt-config.cgiの編集
Database newdb

■コンテンツの再構築
MovableTypeに管理画面からログインし、文字化けしていないこと、ブログ記事が登録されていること、ログ等が更新されていることを確認。
ブログの再構築を行う。