2004年09月30日
[ブログ]
MySQLのデータベースを別サーバーに移行する
binWord.comはレンタルサーバーを借りて運営している。これまで使っていたサーバーにだいぶ負荷がかかっており、Movable Typeでのリビルド(Rebuid:再構築)や、PukiWikiでの編集作業等々でストレスを感じたり、サーバーが応答しなくなることも増えてきた。そこで、同じ業者の別サーバーに移行することにした。
HTMLなどのユーザーデータは基本的に業者が移行してくれることになっているのだが、厄介なのがMovable Typeで使用しているMySQLデータベースだ。これはその他のユーザーデータとは別のところに格納されているため、自分でバックアップ・復元を行う必要がある(業者が移行作業をやってくれてもいいと思うんだけどね……)。
なお、Movable Typeにはデータの書き出し・読み込み機能があるのだけど、これを使ってデータを復元すると、コンテンツの順番がずれてしまうことがある。せっかく個別記事にリンクしてくれている人もいるのだから、できればURLは変えないようにしたい。テンプレートのデータなどもいちいち設定し直さなくてはならないし。やはり、MySQLのデータベースを丸ごと移すのが手っ取り早い。
MySQLデータベースをバックアップするには、SSHやtelnetでサーバーにログインし、「cd」コマンドでデータを保存したいディレクトリに移動。以下のコマンドを入力する。
mysqldump -q データベース名 -pパスワード > バックアップファイル名
これでそのディレクトリ内に「バックアップファイル名」のファイルが出来上がる。
MySQLのバックアップファイルを含むデータを新サーバーに移したら、MySQL用の管理ツールを使って新しいデータベースを作成する。私が使っているレンタルサーバーはWebベースのツールが用意されているので、それを使った。また、データベースにアクセスするためのパスワードも設定する。ここで作成した「データベース名」と「パスワード」は控えておくこと。
次に、新サーバーへSSHやtelnetでログインし、バックアップファイルを保存したディレクトリに移動。
mysql -pパスワード 新データベース名 < バックアップファイル名
これで、MySQLのデータベースが復元される。文字化けするというような話を聞いたこともあるのだが、私の所は以上の操作だけでうまくいった。ちなみに、旧サーバーで使っていたMySQLのバージョンは11.15、新サーバーの方は11.18だ。
なお、Movable TypeでMySQLデータベースを使っている場合、注意する点がいくつか。「mt.cfg」内でMySQLデータベース名を指定している「Database」とユーザー名(データベース利用者)の「DBUser」が正しい設定になっているか確認しよう。また、データベースのパスワードが書かれた「mt-db-pass.cgi」も要確認。
あと、もしかしたらファイルのパーミッションが変わってしまっているかもしれないので、それもチェック。
概要: DBMoto Ver5 Betaの評価版ダウンロードがスタートしました。 評価ご希望の方は: http://www.hitsw.com/products_services/dbmoto/dbmotoBeta.html ソースサイドのDBが更に充実しました。 IBM iSeries and AS/400 V3R...
発信元サイト: HiT Software Official Tech Blog in Japan
発信日:2005.06.04
3ヶ月以上前の記事への質問で申し訳ありません。サーバーを移行するわけではありませんが、Movable Typeとそれによるサイトを誤って削除してしまったのです。MySQLにはデータは残っています。この場合、再度、Movable Typeをインストールしようとすると、これがデータベースを作ろうとして、すでにあるデータベースと競合しないのでしょうか?データベースから、サイトを復元することは可能でしょうか?特に、コメントを復元できないだろうかと期待しています。突然で申し訳ありません。よろしくお願いします。
Posted by: tarowan at 2005年01月01日 20:33Ver3以降はわかりませんが、Movable Type 2.661の場合、設定ファイルでMySQLデータベースの名前を指定します。勝手にデータベースを作ったりはしません。MySQLのデータベースさえ残っていれば大丈夫のはずですよ。
Posted by: Tats_y at 2005年01月03日 23:08ありがとうございました。
インストールして、画像をアップロードして、再構築したら元の状態に戻りました。心配していたのですが、意外に簡単でした。
何かするときはバックアップをとってからだと痛感しました。今回はMySQLが残っていたので助かりました。
レンタルサーバーの場合、MySQLのデータベースファイルをバックアップするには、管理者にファイルのアクセス権限を変更してもらう必要があるかもしれません。私の利用している業者ではそうでした。参考までに。
Posted by: Tats_y at 2005年01月11日 18:49
(※このエントリーに対してトラックバックを送る際は、下記URLをコピーし、自分のエントリーの「TrackBack先のURL」欄に貼り付けてください)
(※この記事へのリンクは、http://www.binword.com/blog/archives/000285.htmlにお願いします。トラックバック用URLとは異なりますのでご注意ください)
以下は、このエントリーに送られたトラックバックです。