end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

設定ファイル(my.cnf)を複製して複数のmysqlを起動

mysqlのドキュメントでは、次のように複数mysql起動手段として再?コンパイルを紹介していますが、設定ファイル(my.cnf)を複製すれば、複数mysqlを起動できるようです。

http://mirror.hostfuss.com/mysql/doc/refman/5.1/ja/multiple-unix-servers.html

Unixで複数のサーバを実行する最も簡単な方法は、
異なる TCP/IP ポートと Unix ソケットファイルで
サーバをコンパイルすることです

datadirの作成と所有者の変更

先日、datadir=/data/mysql としてinstallした為、今回は /data/mysql2 をdatadirに使用します。

# mkdir /data/mysql2
# chown -R mysql:mysql /data/mysql2

設定ファイル(my.cnf)の複製と編集

次にmy.cnfをコピーして、portやdatadir、socketの値を変更して下さい。

# diff /etc/my.cnf /etc/my2.cnf

< port          = 3306
> port          = 3307
< socket                = /tmp/mysql.sock
> socket                = /tmp/mysql2.sock

< datadir = /data/mysql
> datadir = /data/mysql2
< port          = 3306
> port          = 3307
< socket                = /tmp/mysql.sock
> socket                = /tmp/mysql2.sock

許諾テーブルの作成

許諾テーブルの作成は --datadir=/data/mysql2 で実行してください。

# /usr/local/mysql/bin/mysql_install_db \
   --datadir=/data/mysql2 \
   --user=mysql

mysqlの起動と接続

先程までで作業自体は完了しているので、後は my2.cnfを使用してmysqlの起動や接続を行ってください。

$ /usr/local/mysql/bin/mysqld_safe \
   --defaults-file=/etc/my2.cnf  \
   --user=mysql &
$ /usr/local/mysql/bin/mysql \
   --defaults-file=/etc/my2.cnf  \
   --user=root 
   mysql &