複数の MySQL を同一のサーバに立てる。

既に MySQL がインストールされている場合。そのインストールされたMySQLのクローンを同一サーバにもう一個立てたい場合。*1オプションでポートや、データディレクトリを指定して、mysqld_safe を起動するのが一番簡単。
まず、任意の場所に(以下例では /home/mysql/data)データディレクトリを設定し、以下のように db をインストールする。

# mysql_install_db \
--datadir=/home/mysql/data/ \
--basedir=/usr/local \
--user=mysql \
--socket=/tmp/mysqld-new.sock \
--no-defaults

出来たら、起動してみる。ポート番号も任意。(以下例では3308)

# mysqld_safe \
--datadir=/home/mysql/data/ \
--basedir=/usr/local \
--user=mysql \
--socket=/tmp/mysqld-new.sock \
--port=3308


接続確認。

# mysql --socket=/tmp/mysqld-new.sock -p

一応パスワードも設定しておく。

# mysqladmin -u root -p password "mysql" --socket=/tmp/mysqld-new.sock 

q4m もインストールする場合は、下記。

# cd $Q4M_WORK_DIR
# mysql -u root --socket=/tmp/mysqld-new.sock < support-files/install.sql
# mysql -u root --socket=/tmp/mysqld-new.sock
mysql> show plugins;
+------------+--------+----------------+--------------------+---------+
| Name       | Status | Type           | Library            | License |
+------------+--------+----------------+--------------------+---------+
| binlog     | ACTIVE | STORAGE ENGINE | NULL               | GPL     | 
| partition  | ACTIVE | STORAGE ENGINE | NULL               | GPL     | 
| ARCHIVE    | ACTIVE | STORAGE ENGINE | NULL               | GPL     | 
| BLACKHOLE  | ACTIVE | STORAGE ENGINE | NULL               | GPL     | 
| CSV        | ACTIVE | STORAGE ENGINE | NULL               | GPL     | 
| MEMORY     | ACTIVE | STORAGE ENGINE | NULL               | GPL     | 
| InnoDB     | 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     | 
+------------+--------+----------------+--------------------+---------+
10 rows in set (0.00 sec)

mysql> use test
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql クライアントを、元々、

$ mysql

という風に起動していた場合は、上記のように指定すれば今までの MySQL インスタンスに繋がるし、

$ mysql --socket=/tmp/mysqld-new.sock

というようにソケット指定で起動すれば新しいインスタンスに繋がる。これは同一マシンからの接続の例で、別マシンから接続する場合は、新マシンのポート 3308 を指定する。

*1:MySQL のインストールについては既に書いた。