- 2009年3月14日(土) 06:11
- WWW
こんな夜中(というかもう明け方ですが)に書くというのも久しぶりなような気がしますが,それはきっと気のせいということで(ぉ
先日,さくらインターネットのサーバOSがバージョンアップするので,以降TELNET接続が使えなくなるということを2009年2月28日(土) - SSHクライアントソフトをインストールしたに書いたんですが,そのバージョンアップが11日に行われました.バージョンアップ直後は結構重かったみたいですけど,だいぶ解消されつつあるのかな...といった感じですね.
んで,そのバージョンアップの際にMySQLのバージョンも上がりまして,4.0.27から5.1.30に上がりました.他のレンタルサーバではもう去年のうちにMySQLを5以降にしているところが殆どで,さくらはこの辺だけが遅れていたんですが,ようやくMySQL5ですよ.
ところが(当たり前ですけど),元のデータベースが勝手にMySQL5.1系になるわけではないので,どうも今年の2月4日以前に契約しMySQLを使っているユーザーの場合は,元のデータベース(当然MySQL4.0系)は残したままということらしいです.つまり,ずっと使っている人は「自分で元のデータベースを削除して,改めてデータベースの登録をしてください」ということなんですね.
そんなわけで(?)俺自身も「今使っているデータベースを継続するか,5.1系へ移行するか」の選択を迫られていた訳でして...って俺自身はあっさりと「じゃ,移行しよう」ということで前もって準備をしていたのですが(苦笑).その準備段階・移行段階で結構苦労したし,検索してみると他の方も苦労しているようなので備忘ということで書いておきます.
- 1. データベースのエクスポート(バックアップ)
一番苦労するのは「データベースのバックアップで文字エンコードが合わず,文字化けが起きてしまう」というものだと思います.俺自身もこの問題に関しては結構気にしていて,何度か試しにエクスポートをやってみたりしたのですが,さくらの場合は単純にphpMyAdminでログインする際に,文字エンコードの選択肢が出てくるので,MTの文字コード(UTF-8)に合わせた状態でログインするだけという,非常に簡単なことで解決しました.んで,phpMyAdmin上でエクスポート
を行ったわけですが,注意としては...- 「構造(チェックが入っています)」欄の「DROP TABLEを追加」と「IF NOT EXISTSを追加」にチェックを入れる.
- 「ファイルに保存する」にチェックを入れ,圧縮は「なし」にする.
こんなところでしょうか.圧縮しなかったのは,正確なファイルサイズを知っておきたかったのと,あとで分割出来るようにしておきたかったというのが理由です.実際,分割しないとデータが大きすぎて(うちの場合は記事だけでも1,200弱あるため,13MBほどになりました)一度にリストアできなかったので,結果として正解だったのですが(^^;.なお,当然ですけどMT上での「システムバックアップ」も行っていたほうが良いと思いますよ.
- 2. バックアップファイルの分割
バックアップファイル(拡張子はsqlです)は普通にテキストファイルですので,テーブルごとに分割しておいたほうが良いと思いますが,一番大きいのは(うちの場合)mt_entryテーブルとmt_sessionテーブルです.特にmt_sessionテーブルはバックアップファイルの6割以上を占めている(うちの場合で8.6MBだった)ので,おそらくインポート(リストアに相当)時に大きすぎて失敗する可能性があります.その場合の対処法については後で書きます(^^;
なお,先頭の方にある「
CREATE DATABASE `データベース名`;」の部分は,先頭に「--」をつけてドキュメント化しておいたほうが良いと思います(さくらの場合のみかも(^^;).- 3. データベースの削除と,新しいデータベースの作成
この辺はさくら固有になってしまうので簡単に書いてしまいますけど,会員メニューのコントロールパネル(「契約情報」の「サーバ設定」から入ります)内の「データベースの設定」をクリックすると,現在使っているデータベースの概要が表示されますが,「データベースの削除」ボタンをクリックすると,データベースが削除されます.
その後,もう一度「データベースの設定」をクリックすると「MySQL5.1」が選択されたデータベースを新規取得するかの画面が出ますので,パスワードを再度設定した上で「データベースの作成」(だったかな?)をクリックすると,新しいデータベースが作成されます.phpMyAdminをクリックしてログインすると,自分のアカウント名のデータベースが作成されているはずです.なお,当然ですが新しい方はデータベースサーバ名も以前とは違うものが割り振られます.
- 4. バックアップファイルからインポートする
phpMyAdminでログインし,自分のアカウント名のデータベースに入ります.データベースに入ったら,一番上のタブにある「インポート」をクリックし「参照」ボタンをクリックして,ローカル上にあるsqlファイルを選択してインポートします.
なお先ほども書いたとおり,ファイルサイズが4MB近辺以上のファイルについては,データが大きすぎるためインポートに失敗します.その場合はインポートできなかったsqlファイルをbzip2圧縮(拡張子はbz2となります)し,圧縮したファイルをインポートするようにすればうまくいくと思います.
インポートが全て終わったら,テーブルの数を確認してください.MTの場合だと,39個のテーブルが存在すれば完了となります.
- 5. MT上で確認する
確認の前に,データベースサーバ名が変わっているので,mt-config.cgi内の「
DBHost データベースサーバ名」となっている部分を,新しいデータベースサーバ名に変更して保存し,FTPソフトで上書きアップロードしておいてください.その後,mt.cgiにアクセスし,一覧で「記事の確認」辺りを行って問題がなければ完了です.なお,一部の文字で文字化けが起きることがあります(俺が確認したところでは「~」という文字が化けてました)が,動作にはほとんど支障がないと思って良いと思います.
なお,SSH上でmysqldumpを使ってバックアップする方法も検討してみたのですが,どうもさくらのMySQL4.0の場合,デフォルトの文字エンコードがujisとなっているようで(何故だ(^^;),でも中身はUTF-8となっていることから,どうやっても文字化けが起きてしまうため,一番確実な方法ということでこっちを選択しました.誰かmysqldumpで出来たという人がいたら連絡してください(え
- 2009-03-14 14:00追記
上に書いた「~」文字の文字化けの原因が分かりました.phpMyAdminで各テーブルの構造を見てみたところ,照合順序が
ujis_japanese_ciとなっていたのが原因でした.これを全てutf8_general_ciに修正して,該当エントリー等を編集し再構築してみたところ,正常に表示されるようになりましたよ(^^)Googleで検索してようやくヒットしたweb-scratch.blog: MT4で「~」「\」が文字化け&日本語タグクラウド重複【解決編】が参考になりました.
尤も既存のデータは編集して再構築しないと反映されませんけど,これは気が付いたときにちょこちょこやっていきます.
- Newer: 2009年3月20日(金) - MT 4.25が出てました
- Older: 2009年3月 8日(日) - 3月に入ってから...
Comments:0
Trackbacks:5
- TrackBack URL for this entry
- http://kita2.net/mt/mt-tb.cgi/1111
- Listed below are links to weblogs that reference
- MySQLを4から5へ from HashiMのたわごと(?)
- MySQLを5から5(へ? from HashiMのたわごと(?) 2009-03-22 (日) 12:25
- MySQLのお引越し(?)完結編(え.分割なんてしなくても良かったのね...とか,文字エンコードはどうすんの?とか覚書してます.
- 和洋風◎は、さくらインターネットに引っ越しました。 from 和洋風◎ 2009-04-02 (木) 23:49
- 和洋風◎のサーバを、さくらインターネットに引っ越しました。
- やっとこさでMySQL5.1へ・・・ from WikiCookRecipe日記 2009-04-16 (木) 16:08
- > 4月16日(木)10:00より、ウィキクックレシピ(WikiCookRecipe)-みんなのレシピ みんなで料理-のデータベースバージョ...
- MySQL 4 から 5へ from dogmap.jp 2009-05-11 (月) 21:36
- このサイトを設置している、さくらインターネットのサーバOSが FreeBSD 7.1 にバージョンアップされました。 その際 MySQL も 4.0.x ...
- MT5をインストールした from HashiMのたわごと(?) 2009-11-28 (土) 16:01
- 2日遅れぐらいになりますが,MT5をインストールしましたので,手順などを覚書しておきます.
当ブログは,携帯端末での閲覧も可能です.