【MySQL】mysqld_multiで複数のmysqldを起動する
問題
1台のマシンに複数のMySQLサーバーを起動したい。
解答例
ポートなどの設定を変えて、複数のmysqlサーバーを起動することができる。
1つのMySQLサーバーインスタンスが1つのデータベースで、いわゆるMySQLのデータベースはスキーマに相当するようなものなので、複数のデータベースが欲しいときは、複数インスタンス起動するのが正解なのではないかと思う。
とにかく、その方法。
1、設定ファイル
/etc/my.cnf をコピーして /etc/my-3307.cnf などを作るのは気持ち悪いので避ける。
mysqld_multi を使って複数起動させてみる。
mysqld_multi で複数サーバーを起動する場合は 通常の設定ファイル /etc/my.cnf に、[mysqld_multi]のセクションと、[mysqld1]、[mysqld2]、[mysqld3]…のセクションを追加すればよい。
・記述例
#これは /etc/my.cnf に通常ある、1つ目のインスタンス用の設定 [mysqld] port = 3306 socket = /tmp/mysql.sock <中略> #mysql_multi用の設定 [mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin #user = multi_admin #password = multipass #別のインスタンス用の設定のセクションを[mysqldN]形式で欲しいだけ追加 [mysqld1] port = 3307 socket = /tmp/mysql.sock1 pid-file = /usr/local/mysql/var1/softel.pid1 datadir = /usr/local/mysql/var1 mysqld = mysqld ledir = /usr/local/mysql/libexec 必要だったり必要じゃなかったり user = mysql
2、データベースを作る(データディレクトリを初期化)
# mysql_install_db --user=mysql --datadir=/usr/local/mysql/var1
3、起動&停止
これだけ!
# mysqld_multi start 1
# mysqld_multi stop 1
4、クライアントから接続
ローカルの場合、ポートを指定したいのでIPも指定する。
$ mysql -h 127.0.0.1 -P 3307 -u xxxuser -p
いつも使っている方はいつもどおりで。
$ mysql -u xxxuser -p
コメント