[MySQL]mysqld_multi設定方法

概要

mysqld_multiとは、端的に言うと一つのサーバーで複数のmysqlのプロセスを管理できるプログラムです。
レプリケーションやバックアップ目的で、複数個のmysqlを使いたいときに、サーバーが一つしかないなどの場合には特に良く使います。
この記事では、そのmysqld_multiで、複数のmysql動かしていきましょう。

設定

まず、設定ファイルの作成をします。
# vi /etc/my.cnf

[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
log = /var/log/mysql/multi.log

[mysqld]
character-set-server = utf8
default-storage-engine = INNODB
log-warnings
general_log

[mysqld1]
port = 3306
datadir = /var/lib/mysql1
pid-file = /var/lib/mysql1/mysql.pid
socket = /var/lib/mysql1/mysql.sock
log-error = /var/log/mysql/error1.log
general_log_file = /var/log/mysql/query1.log

[mysqld2]
port = 3307
datadir = /var/lib/mysql2
pid-file = /var/lib/mysql2/mysql.pid
socket = /var/lib/mysql2/mysql.sock
log-error = /var/log/mysql/error2.log
general_log_file = /var/log/mysql/query2.log


このように、上からmysqld_multiの設定、インスタンスすべての共通設定、それぞれのインスタンスの設定、といった感じで設定していきます。

あとはデータのディレクトリを作成して、ログのディレクトリを作成すれば起動するだけです。

今回は/var/lib配下で指定したので、そこにデータディレクトリを作成していきます。
# 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

ログのディレクトリも作成していきます。今回は/var/log/mysql配下ですね。
# mkdir /var/log/mysql

権限も同様に変えます。
# chown mysql:mysql /var/log/mysql

上記が終了したら、mysqld_multiコマンドで起動させます。
# mysqld_multi start

ちなみに、ひとつずつ起動させたいときは
# mysqld_multi start 2

等、指定してあげるとそれだけを起動させることができます。

総括

mysqld_multi、レプリケーションの練習やバックアップの取得などに役に立ちます。
レプリケーションの方法がわからなかったときに、本番環境ではさすがにできないので、こういった方法を使って練習をすることができますし、バックアップも一つのサーバーに何個も起動させておいて、それぞれに複数のデータベースのバックアップを一ヶ所に集約して管理することもできるので、便利です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です