#mysqlrouter素晴らしい
ここでは話しません、詳しくは公式を参照お願いします。
#ハマったところ
掲題とおり、mysqlrouter以外を指定するとsystemctl startで起動できません。
何故かと言うと、yum installした時点で勝手に起動ユーザがmysqlrouterになっているから!!
[Unit]
Description=MySQL Router
After=syslog.target
After=network.target
[Service]
Type=simple
User=mysqlrouter
Group=mysqlrouter
PIDFile=/var/run/mysqlrouter/mysqlrouter.pid
ExecStart=/usr/bin/mysqlrouter -c /etc/mysqlrouter/mysqlrouter.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
上記ファイルを修正して、daemon-reloadすれば解決しますが、気付かない。。
#ちなみに(ここも少しハマりましたが)
--direcotryオプションを使わなければ、デフォルトで以下の通りファイルが作られ、--userで指定したユーザオーナに変更してくれる(はずですがファイルのみなのでディレクトリ権限は要注意です!)。
4416099 0 drwx------ 2 root root 39 6月 12 17:33 /var/lib/mysqlrouter
4416102 4 -rw------- 1 root root 120 6月 12 17:33 /var/lib/mysqlrouter/keyring
4416101 4 -rw------- 1 root root 383 6月 12 17:33 /var/lib/mysqlrouter/state.json
92385013 0 drwxr-xr-x 2 root root 81 6月 12 17:33 /etc/mysqlrouter
92385313 4 -rw------- 1 root root 1212 6月 12 17:33 /etc/mysqlrouter/mysqlrouter.conf
92385314 4 -rw------- 1 root root 86 6月 12 17:33 /etc/mysqlrouter/mysqlrouter.key
92385315 4 -rw------- 1 root root 1610 6月 12 17:33 /etc/mysqlrouter/mysqlrouter.conf.bak
2634 0 drwxr-xr-x 2 mysqlrouter mysqlrouter 29 6月 12 17:33 /var/log/mysqlrouter
2649 4 -rw-r--r-- 1 root root 3762 6月 12 17:33 /var/log/mysqlrouter/mysqlrouter.log
#Tip
使っている方はご存じだと思いますが、
複数のAPPサーバ又はClientインスタンスに対して都度bootstrapする必要なく、
上記のlogファイル以外をコピーして、APPサーバ等に入れて起動すればmysqlクラスターへアクセス可能!便利!
結果的にこれは管理用ユーザを外部からのアクセスを許可しなくてもいいメリットがあります。(環境によりますが)
そうじゃなければbootstrap度に管理権限でDBにアクセスし、router_xxxxユーザを作ることになってしまう。。