ubuntuのmysqlからtritonnへ移行
バイナリをそのまま利用での手順。
http://pw1.atcms.jp/works/index.php?Toritonn
の手順をベースにしてる。
すでにmysqlが動いているから、移行のために、同時にtritonnも動かして、途中で切り替える。
まずはバックアップ。(追記:下記コマンドだと、キャラクタエンコーディングがしっかりしていないとおかしいことになる。詳しくはhttp://d.hatena.ne.jp/kudzu/20100815/1281887444)
$ mysqldump **** > dump
で、インストール。バイナリはsourceforgeからダウンロード。
インストール先のサーバから直接ダウンロードしようと思ったら、インスペクタで実際のurlを調べないといけないのが面倒くさい。
$ tar zxvf tritonn-1.0.12-mysql-5.0.87-linux-i686.tar.gz
$ sudo mv tritonn-1.0.12-mysql-5.0.87-linux-i686 /usr/local/tritonn
$ cd /usr/local/tritonn/
$ sudo chown -R root:root .
$ sudo chown -R mysql:root data
$ scripts/mysql_install_db --basedir=/usr/local/tritonn --datadir=/usr/local/tritonn/data --user=mysql
$ sudo ln -s /usr/local/tritonn/support-files/mysql.server /etc/init.d/tritonn
$ sudo cp /usr/local/mysqlt/support-files/my-large.cnf /etc/my.cnf
一応念のため、データは違うところにインストールすることにしてみた。
ちなみに幸いにして、/etc/my.cnfは標準のmysqlからは無視されるっぽい。
$ sudo emacs /etc/my.cnf
重要なのは、clientとmysqld(あとあればmysqld_safeも?)のsocketとportの行。
/etc/mysql/my.cnfに標準のmysqlの設定があるので、とりあえずそれと被らないようにする別のものにする。
- /etc/mysql/my.cnf (の恐らく標準設定)
- socket=/var/run/mysqld/mysqld.sock
- port=3306
- /etc/my.cnf (tritonn用の新しいやつ)
- socket=/tmp/mysqld.sock
- port=3307
socketは被ってなかったから、port変えればいいだけ。
$ sudo /etc/init.d/tritonn start
これでtritonnが立ち上がるはずなので、dbのコピーを行う。
$ /usr/local/tritonn/bin/mysql -u root
データベース(dbname)を作成
$ /usr/local/tritonn/bin/mysql -u root dbname < dump
これでコピー完了。したので、今度はphpから参照するmysqlを標準のmysqlからtritonnに切り替える。
ポートのほうは多分phpからは使われないんだろうけど、なんとなく気持ち悪いから一応変えておく。
- /etc/mysql/my.cnf
- socket=/tmp/mysqld.sock
- port=3305
- /etc/my.cnf (tritonn用の新しいやつ)
- socket=/var/run/mysqld/mysqld.sock
- port=3306
で、サーバを再起動。socketの都合で、mysqlの停止から。
$ sudo /etc/init.d/mysql stop
$ sudo /etc/init.d/tritonn restart
これでtritonnに切り替え完了。
現在fulltext index作成中。