Ramdom Entry Pickup
- 大阪に出張中 (2005年12月22日)
- ヨープレイト「食べごたえ」ヨーグルト&フルーツ (2005年01月25日)
- 科学忍者隊「ガッチャピン」(BlogPet) (2006年03月11日)
- 継承の価値観 (2005年07月06日)
- 500サイト突破!(BlogPetRING) (2005年10月23日)
« 携帯アプリ:探偵・癸生川凌介事件譚シリーズ | メイン | PHP5からPHP4へバージョンダウン(ToT) »
このブログを立ち上げているサーバーのデータベースエンジンを、
PostgreSQLからMySQLへ移行しました。
なぜかというと、、、
PostgreSQLの方が高機能?であるのはわかっていたので、
最初はそちらで運用していましたが、
などの、いろいろなMTのカスタマイズを見ていくたびに、
MySQLの方がいろいろな面で良さそうだな、と。。。。
単純にそれだけです(^^;)
それでは、以下の多数の参考URLを元に、
移行作業手順をかいつまみではありますが、
記しておきたいと思います。。(私の備忘録という意味もありますが(^^;))
まず、今のブログはPostgreSQLで稼働しっぱなしにしておいて、
元から入っていたRPMパッケージのMySQLを削除します。
# rpm -e mod_auth_mysql-1.11-12
# rpm -e mysql-3.23.58-1.90.5.legacy
# rpm -e mysql-server-3.23.58-1.90.5.legacy
# rpm -e perl-DBD-MySQL-2.1021-3 mysql-3.23.58-1.90.5.legacy
続いて、ソースからのMySQLのインストールです。
より、ソースをダウンロードしてきます。
まぁ、私もよくわかりませんが、上記サイトの、
Linux (x86, glibc-2.2, static (Standard only), gcc)
をダウンロードしました。
ダウンロードしたファイルを、「/usr/local」にアップロードし、展開します。
のちのMySQLのアップグレードに備え、パスをシンボリックリンクでごまかして?おきます。
次に、MySQLの初期設定(DB管理テーブル等の生成)を行います。
MySQL Server(デーモン)の動作グループ(mysql)/ユーザー(mysql)の設定を行います。
グループ/ユーザーを作成し、各ディレクトリ/ファイルの所属を変更します。
続いて、設定ファイル(my.cnf)を編集します。
あらかじめ設定ファイルのサンプルはソースファイル群の中にありますので、
それをコピーします。
私のブログは文字コードがUTF-8ですし、他にMySQLを使うあてもありませんので、
MySQLのデフォルトの文字コードをUTF-8にします。
「my.cnf」に青文字の部分を追加します。
[mysqldump]
default-character-set = utf8
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-networking
user = mysql
default-character-set = utf8
tmpdir = /tmp/
それでは、いざ、バックグラウンドでMySQLで起動します。
初期アカウントの特権ユーザーrootに、最初はパスワードが設定されていないので、適当なパスワードを設定します。
その後、その特権ユーザーrootにて、MySQLへ接続します。
それでは、MovableType用のデータベースを作成します。
データベース名は「mt」としました。
mysql>
データベース「mt」に、MovableType用の接続アカウントを設定します。
そして、ユーザー名を「mysql」として、作ったデータベース「mt」に対しての
すべての権限を設定します。
mysql> grant all privileges on mt.* to mysql@localhost identified by 'パスワード';
Query OK, 0 rows affected (0.13 sec)
mysql> flush privileges;
mysql> exit;
Bye
最後に、MySQLの起動スクリプトを作成し、自動起動できるようにしておきます。
これもすでにソースファイルの中にあります。
これでMySQLの設定は終了です。
他に、MySQLを使うに当たり、Perlモジュールが必要であったため、
今回新たに導入しました。
CPANを使用します。
これでデータベース移行の準備は整いましたので、
いざ!移行!!
Ogawa::Memorandaさんのページに、
「mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト」
というのがありますので、そちらを使用させて頂きました。
「mt-db-convert.zip」をダウンロード後、解凍し、
「mt-db-convert.cgi」をMTディレクトリにアップロードします。
※パーミッションを755にするのを忘れずに!
そして、ブラウザから「mt-db-convert.cgi」へアクセスします。
左側にコンバート前、右側にコンバート後を設定し、「Convert」を押します。
すると、、、、
Loading data...
MT::Author
...
(3 objects saved.)
MT::Blog
....
(4 objects saved.)
MT::Category
.......... .......... .......... .......... .......... .......... .......... .......... ......
(86 objects saved.)
MT::Comment
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... .
(1151 objects saved.)
MT::Entry
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..
(1192 objects saved.)
MT::IPBanList
(0 objects saved.)
MT::Log
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
(中略)
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
..
(17602 objects saved.)
MT::Notification
(0 objects saved.)
MT::Permission
......
(6 objects saved.)
MT::Placement
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... ..
(1312 objects saved.)
MT::Template
.......... .......... .......... .......... .......... .......... ......... Found duplicate template name 'Dynamic Pages Error Template'; renaming to 'Dynamic Pages Error Template 2'
. .......... .......... ..........
.......... .......... .........
(129 objects saved.)
MT::TemplateMap
.......... .........
(19 objects saved.)
MT::Trackback
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... .......... .......... .......... .......... ....
(1194 objects saved.)
MT::TBPing
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... ..
(452 objects saved.)
MT::Session
.......... ......
(16 objects saved.)
MT::PluginData
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... ...
(1623 objects saved.)
MT::Config
.
(1 objects saved.)
MT::FileInfo
.......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
.......... .......... .......... .......... .......... ....
(154 objects saved.)
Done copying data from DBI::postgres to DBI::mysql! All went well.
Your recommended setting
-------------------------------------
# ObjectDriver DBI::postgres
# Database mt
# DBUser postgres
# DBHost localhost
# DBPassword ******
ObjectDriver DBI::mysql
Database mt
DBUser mysql
DBHost localhost
DBPassword ******
-------------------------------------
いくつかエラーやワーニングは出たが、何とか移行できたようである。
上記ログで表示されているように、
「mt-config.cgi」のデータベースの記述部分を、移行後の物に書き換えます。
以上、完了!!!
Link HTML:
トラックバックURL:
» MySQLへの移行 from
uep on hayate