2012年5月9日水曜日

install Q4M on CentOS5

※this text from livedoor blog 2009/10/27

1つのサーバに複数のMySQLをインストールします

既に新しいバージョンのMySQLをrpmでインストールしています
(Q4Mのrpmは新バージョンに対応していない)
ので、先ずQ4M専用のMySQLをソースからインストールします

MySQLのインストール


MySQL用アカウント/グループ作成
$ sudo /usr/sbin/groupadd mysql
$ sudo /usr/sbin/useradd -g mysql mysql


configureに必要なライブラリをインストール
$ sudo yum -y install gcc gcc-c++ ncurses-devel

tar.gzファイルをダウンロード
$ wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.30.tar.gz
$ tar xzf mysql-5.1.30.tar.gz
$ cd mysql-5.1.30


configureを行う
$ ./configure \
'--with-tcp-port=3307' \
'--prefix=/usr/local/mysql_q4m' \
'--localstatedir=/usr/local/mysql_q4m/data' \
'--with-unix-socket-path=/var/lib/mysql_q4m/mysql.sock' \
'--exec-prefix=/usr/local/mysql_q4m' \
'--libexecdir=/usr/local/mysql_q4m/bin' \
'--datadir=/var/lib/mysql_q4m' \
'--includedir=/usr/local/mysql_q4m/include' \
'--infodir=/usr/local/mysql_q4m/share/info' \
'--mandir=/usr/local/mysql_q4m/share/man' \
'--build=i486-linux-gnu' \
'--with-server-suffix=-1' \
'--enable-shared' \
'--enable-static' \
'--enable-thread-safe-client' \
'--enable-assembler' \
'--enable-local-infile' \
'--with-big-tables' \
'--with-mysqld-user=mysql' \
'--with-libwrap' \
'--with-ssl' \
'--without-docs' \
'--with-readline' \
'--with-extra-charsets=all' \
'--without-embedded-server' \
'--with-ndb-ccflags=-fPIC' \
'--without-ndb-sci' \
'--without-ndb-test' \
'--with-embedded-server' \
'--with-embedded-privilege-control' \
'--without-ndb-docs' \
'--with-charset=utf8' \
'--with-fast-mutexes';


インストール
$ make
$ sudo make install


.cnfファイルをコピー&設定
$ sudo cp /var/lib/mysql_q4m/mysql/my-medium.cnf /etc/my_q4m.cnf
$ sudo emacs /etc/my_q4m.cnf
[mysqld]
datadir = /var/lib/mysql_q4m

# Disable Federated by default
#skip-federated

新しい MySQL 権限テーブルを生成
$ sudo /usr/local/mysql_q4m/bin/mysql_install_db --datadir=/var/lib/mysql_q4m/ --user=mysql
$ sudo chown -R mysql:mysql /var/lib/mysql_q4m/


mysqld サーバ ( デーモン) を起動
$ sudo /usr/local/mysql_q4m/bin/mysqld_safe --defaults-file=/etc/my_q4m.cnf --user=mysql &
※Q4Mを走らせたらstopはできません

エラーが無いか確認
$ sudo tail -f /var/lib/mysql_q4m/ip-**********.err

mysql接続テスト
$ /usr/local/mysql_q4m/bin/mysql -uroot -P3307 --socket=/var/lib/mysql_q4m/mysql.sock

rootのpasswordを設定
$ /usr/local/mysql_q4m/bin/mysqladmin -uroot -P3307 --socket=/var/lib/mysql_q4m/mysql.sock password '******'

接続テスト
$ /usr/local/mysql_q4m/bin/mysql -uroot -p****** -P3307 --socket=/var/lib/mysql_q4m/mysql.sock

プロセス確認
$ ps -ax | grep mysql



Q4Mのインストール

tar.gzファイルをダウンロード
$ wget http://q4m.31tools.com/dist/old/q4m-0.8.3.tar.gz
$ tar xzf q4m-0.8.3.tar.gz
$ cd q4m-0.8.3


configureを行う
--with-mysqlはmysql-5.1.30.tar.gzを展開したディレクトリ
--prefixはinstallしたmysqlの--prefixと同じ
$ ./configure --with-mysql=/home/user/mysql-5.1.30 --prefix=/usr/local/mysql_q4m

makeに必要なライブラリをインストール
$ sudo yum -y install boost-devel

perlのモジュールをインストール
$ sudo yum -y install perl-DBD-MySQL
$ sudo yum -y install cpan
$ sudo cpan List::MoreUtils
$ sudo cpan Data::Compare


インストール
$ make
$ sudo make install
$ /usr/local/mysql_q4m/bin/mysql -uroot -p****** -P3307 --socket=/var/lib/mysql_q4m/mysql.sock -f mysql < support-files/install.sql


テストする(インストールした後にテストするみたい)
$ DBI='dbi:mysql:database=test;host=localhost;port=3307;mysql_socket=/var/lib/mysql_q4m/mysql.sock' \
DBI_USER='root' \
DBI_PASSWORD='******' \
make test


ストレージエンジンQUEUEが有るか確認
$ /usr/local/mysql_q4m/bin/mysql -uroot -p****** -P3307 --socket=/var/lib/mysql_q4m/mysql.sock
mysql> show plugins;
+------------+--------+----------------+--------------------+---------+
| Name | Status | Type | Library | License |
+------------+--------+----------------+--------------------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| QUEUE | ACTIVE | STORAGE ENGINE | libqueue_engine.so | GPL |
+------------+--------+----------------+--------------------+---------+
6 rows in set (0.00 sec)