MySQLのデータは,登録プログラムをRubyで書いていたので*1,新サーバでそれを走らせました.
サーバ交換メモ(2) - わさっき
今月に入って,動作確認をしようとしたら,まったく動きません.MySQLサーバが起動してなさそうです.パッケージを見ると,mysql-commonやphp5-mysqlは入れていますが,本体はインストールしていません.
Ludiaに食指が動くとはいえ,Tritonnはまだまだ基幹の全文検索エンジンです.ということで,ソースからのインストールをやり直しました.
過去にGentooでTritonn - わさっきというのを書いていますが,本日はコマンド中心です.
準備
mysqlのビルドの際にcursesが求められるので,入れておきます.
# apt-get install libncurses5 libncurses5-dev
MeCabの辞書をUTF-8にしておきます.やり方は,acts_as_ludiaをRailsなしで使う - わさっきに書いたとおりです.
SennaとTritonnをインストール
$ cd (適当なところ) $ wget http://osdn.dl.sourceforge.jp/senna/31533/senna-1.1.3.tar.gz $ wget http://keihanna.dl.sourceforge.jp/tritonn/31597/tritonn-1.0.10-mysql-5.0.51a.tar.gz $ tar xzf senna-1.1.3.tar.gz $ cd senna-1.1.3 $ ls $ ./configure $ make # make install $ cd .. $ tar xzf tritonn-1.0.10-mysql-5.0.51a.tar.gz $ cd tritonn-1.0.10-mysql-5.0.51a $ CC='gcc' CFLAGS='-g' CXX='gcc' CXXFLAGS='-g' LDFLAGS='' ASFLAGS='' ./configure '--prefix=/usr/local/mysql' '--localstatedir=/usr/local/mysql/data' '--libexecdir=/usr/local/mysql/bin' '--with-comment=MySQL Community Server (GPL)' '--with-server-suffix=' '--enable-thread-safe-client' '--enable-local-infile' '--enable-assembler' '--with-pic' '--with-fast-mutexes' '--with-client-ldflags=-static' '--with-mysqld-ldflags=-static' '--with-zlib-dir=bundled' '--with-big-tables' '--with-yassl' '--with-readline' '--with-archive-storage-engine' '--with-blackhole-storage-engine' '--with-ndbcluster' '--with-csv-storage-engine' '--with-example-storage-engine' '--with-federated-storage-engine' '--with-innodb' '--with-extra-charsets=all' '--with-senna' '--with-mecab' $ make # make install # echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf.d/tritonn.conf # ldconfig
wgetで記載しているURLについて,万全を期すなら,例えばSennaなら,ブラウザでhttp://qwik.jp/senna/Download.htmlにアクセスして,sourceforge.jpへのリンク,最新版tarball (tar.gzのファイル名)へのリンクをクリックして,ダウンロードそのものはキャンセルし,書かれているURLを,wgetの引数にします.Tritonnについては,http://qwik.jp/tritonn/download.htmlからになります.
configrueのコマンドがやたら長いですが,これは,http://qwik.jp/tritonn/howtobuild.htmlの「configureオプションの決め方」に書かれているコマンドそのままです.
"A=a B=b ... コマンド" は,「コマンドを実行するんだけど,環境変数Aの値はa,Bの値はb,...と代入しといてね.でもって,その代入は,そのコマンド限りということでよろしく」という意味です."env A=a B=b ... コマンド" と書いても同じです.
データベース初期化
# groupadd mysql # useradd -g mysql mysql # /usr/local/mysql/bin/mysql_install_db --user=mysql
TritonnつきMySQLサービスの起動準備
# cd (適当なところ)/tritonn-1.0.10-mysql-5.0.51a/support-files # cp mysql.server /etc/init.d/tritonn # chmod +x /etc/init.d/tritonn # update-rc.d tritonn start 93 2 3 4 5 . stop 20 0 1 6 . # mkdir /var/lock/subsys # cp my-medium.cnf /etc/my.cnf # vim /etc/my.cnf 以下の2つを追加します. default-character-set=utf8 skip-character-set-client-handshake ポート番号も変更しておくと,パッケージからのMySQLと衝突しません,たぶん.
データベース追加
# /usr/local/mysql/bin/mysqladmin -u root password 'パスワード' # /usr/local/mysql/bin/mysql -u root -p Enter password: mysql> create database データベース名;
MySQL/Rubyのインストール
個人的にこれも不可欠なので,入れておきます.
$ wget http://tmtm.org/downloads/mysql/ruby/mysql-ruby-2.8pre4.tar.gz $ tar xzf mysql-ruby-2.8pre4.tar.gz $ cd mysql-ruby-2.8pre4 $ ruby extconf.rb --with-mysql-lib=/usr/local/mysql/lib/mysql --with-mysql-include=/usr/local/mysql/include $ make $ make install
最後が「#」すなわちrootのプロンプトになっていないのは,Rubyの安定版スナップショットをコマンド一つでインストール - わさっきで書いたとおり,自分のホームディレクトリの下にrubyやライブラリをインストールしているからです.