LoginSignup
4
3

More than 5 years have passed since last update.

Macでmysqld_multiを使ってみた

Posted at

はじめに

MacOS上でレプリケーションを試してみるために、mysqld_multiを使ってMySQLを複数立ち上げようと思いました。
mysqld_multiに関する記事はいくつかありましたが、ハマった点が多くあったので、自分が最終的に出来たやり方をご紹介します。

やり方

/etc/my.cnfという設定ファイルを作成する

>shell sudo vim /etc/my.cnf
/etc/my.cnf
[mysqld_multi]
mysqld     = /usr/local/bin/mysqld_safe
mysqladmin = /usr/local/bin/mysqladmin
user       = multi_admin
password   = password
[mysqld]
[mysqld1]
server-id = 1
socket     = /tmp/mysql.sock
port       = 3306
pid-file   = /usr/local/var/mysql/my.local.pid
datadir    = /usr/local/var/mysql
user       = root
[mysqld2]
server-id = 2
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/var/mysql2/my.local.pid2
datadir    = /usr/local/var/mysql2
user       = root

mysql用のディレクトリを作成する

>shell cd /usr/local/var
>shell sudo mkdir mysql
>shell sudo mkdir mysql2

各ディレクトリにおいてmysqlを初期化する

1つ目初期化

>shell mysql_install_db --defaults-file=/etc/my.cnf --datadir=/usr/local/var/mysql --basedir=/usr/local/Cellar/mysql/5.7.18

1つ目パスワード確認(メモっておこう)

>shell cat ~/.mysql_secret
# Password set for user 'root@localhost' at 2017-06-27 13:15:32
k>,gLo3sw;>p

2つ目も同様に

>shell mysql_install_db --defaults-file=/etc/my.cnf --datadir=/usr/local/var/mysql2 --basedir=/usr/local/Cellar/mysql/5.7.18

>shell cat ~/.mysql_secret

mysqld_multiでmysqlを立ち上げる

現状を確認

>shell mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running

mysqlを立ち上げる

>shell mysqld_multi start
>shell mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running

mysqlにログインしてみる

以下の操作を両方のmysqlで行いましょう。

まずはログイン

>shell mysql -h 127.0.0.1 -P 3306 -u root -p
Enter password:

パスワードが聞かれるので、先ほど確認したものを入力しましょう。

パスワード変更

初期パスワードのままだと、他の操作をしようとするたびにエラーになるので、先ずは変更しましょう。

alter user root@localhost IDENTIFIED BY 'password';

mysqlをstopする用のユーザーを作成する

>mysql grant shutdown on *.* to multi_admin@localhost identified by 'password';

mysqlをstopする

>shell mysqld_multi --user=multi_admin --password='password' stop
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3