複数のmysqldプロセスを起動するinit.dスクリプト
一つのサーバで複数のmysqldプロセスを起動させたいときがあります。 この用途のために標準でmysqld_multiというコマンドがあるのですが、
このコマンドによるmysqldの起動、停止処理は即時レスポンスを返してしまって、プロセスが完全に立ち上がるのを待ってくれません。 というわけで、起動処理をちゃんと待ってレスポンスを返すような起動スクリプトが欲しかったのでinitd.dスクリプトを自作しました。
以下のスクリプトファイルを/etc/init.d/
配下に実行権限つきでおいてやってください。
設定ファイルは
/etc/my.multi.foo.cnf
/etc/my.multi.bar.cnf
のようにmy.multi.#name#.cnf
という形式で複数用意し、datadir
やpid-file
の設定などをそれぞれユニークにした設定を記述します。(MySQLのドキュメントにもあるように同じデータを複数プロセスで読み書きするのはできません)
あとは
$ sudo /etc/init.d/mysqld_multi start
を実行すれば
mysqld.foo を起動中: [ OK ]
mysqld.bar を起動中: [ OK ]
のように複数のプロセスが起動してくれます。