mysqld_multiで複数起動してみる
VirtualBoxにCentOSをとりあえずインストール
の続き
mysqld_multiで複数起動してみる。
今回は2つ起動する。
【参考】 mysqld_multiで複数のインスタンスを立ち上げ - ngの日記 http://ngyuki.hatenablog.com/entry/20120321/p1 MySQLサーバ複数起動メモ - Wikimura http://www.kimura-lab.net/wikimura/index.php/MySQL%E3%82%B5%E3%83%BC%E3%83%90%E8%A4%87%E6%95%B0%E8%B5%B7%E5%8B%95%E3%83%A1%E3%83%A2 virtualbox(centos)でMYSQLインストールメモ(mysqld_multiで複数インスタンス起動まで) - Qiita http://qiita.com/ryurock/items/73df4ab45c96092b63b8
複数起動の設定
念のためmy.cnfのコピーをとっておく。
# cp /etc/my.cnf /etc/my.cnf.bk
my.cnfをmysqld_multi用に書き換える。
# vi /etc/my.cnf
[mysqld] #datadir=/var/lib/mysql ←コメントアウト #socket=/var/lib/mysql/mysql.sock ←コメントアウト ・・・ ↓↓↓以下追加↓↓↓ [mysqld_multi] mysqld=/usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin [mysqld1] port = 3306 datadir = /var/lib/mysql1 socket = /var/lib/mysql1/mysql.sock pid-file = /var/lib/mysql1/mysql.pid [mysqld2] port = 3307 datadir = /var/lib/mysql2 socket = /var/lib/mysql2/mysql.sock pid-file = /var/lib/mysql2/mysql.pid
# mysql_install_db --datadir=/var/lib/mysql1 --user=mysql # mysql_install_db --datadir=/var/lib/mysql2 --user=mysql # chown -R mysql:mysql /var/lib/mysql1 /var/lib/mysql2
mysqld_multiの確認
以上で、mysqld_multiを起動できる。
# mysqld_multi start
1と2が起動しているのが確認できる。
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
stopで停止。
# mysqld_multi stop
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running
起動スクリプト
起動スクリプトを作成する。
# vi /etc/init.d/mysqld_multi
#!/bin/sh # Mysql daemon start/stop script. # # chkconfig: 2345 90 90 # description: A very fast and reliable SQL database engine. MYSQLDIR=/usr PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:$MYSQLDIR/bin MYSQLID=1,2 export PATH case "$1" in start) echo -n "Starting mysqld: " $MYSQLDIR/bin/mysqld_multi start $MYSQLID echo ;; stop) echo -n "Shutting down mysqld: " $MYSQLDIR/bin/mysqld_multi stop $MYSQLID echo ;; status) $MYSQLDIR/bin/mysqld_multi report $MYSQLID ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0
実行できるようにする。
# chmod 755 /etc/init.d/mysqld_multi
これで、serviceコマンドから起動できる。
# service mysqld_multi start
chkconfigもできるようにする。
# chkconfig --add mysqld_multi
これで、自動起動の設定ができる。
# chkconfig mysqld_multi on
以上で、設定完了。
# exit
/etc/init.d/mysqld_multi のファイルに # chkconfig: 2345 90 90 # description: A very fast and reliable SQL database engine. のコメントが無いと、 「サービス mysqld_multi は、chkconfig をサポートしていません。 のエラーになる。