Maxscale2.0からMySQL5.7に接続する


mysqlrouterまで待てない、routerにはない機能を使いたい人向け

サンプルコンフィグでもハマると
ERROR 1045 (28000): failed to create new session
が出て繋がらないので自分の事例を紹介
手探りで構築したので間違っているのでしたら取り下げますのでご指摘よろしくお願い致します。

ダウンロード

https://mariadb.com/downloads
まさかのfirefoxではOS選択画面が表示されずダウンロードできません
火狐に愛の手を

権限

CREATE USER 'monitor'@'%' IDENTIFIED BY 'xxxxxx';
GRANT SELECT ON mysql.user TO 'monitor'@'%';
GRANT SELECT ON mysql.db TO 'monitor'@'%';
GRANT SELECT ON mysql.tables_priv TO 'monitor'@'%';
GRANT SHOW DATABASES ON *.* TO 'monitor'@'%';
GRANT REPLICATION CLIENT ON *.* TO 'monitor'@'%';
flush privileges

ユーザ名には指定がないですがmonitorを仮で入れてます。
権限は5つ必要な模様。エラーログに出てくれるのでわかりやすいです。
ubuntu16.04では/var/log/maxscale/maxscale1.logに出力されました

コンフィグ

公式にサンプルがあります。
https://mariadb.com/kb/en/mariadb-enterprise/connection-routing-with-mysql-replication/
基本的にこのコンフィグで動作します。最小モードでまずテストを
/etc/maxscale.cnf.templateの設定では完全には動作しません

serviceタグ

[xxxx Service]
type=service
router=readconnroute

サンプルでも書かれてますがrouter=readconnrouteしか動作せず
router=readwritesplitにするとERROR 1045になる模様
普通はgarela環境で使うためwrite serviceにはreadwritesplitを指定する例が多く
mysqlユーザがハマりやすいポイントかと

serviceタグ

[xxxx Service]
type=service
#router_options=xxxxxxxxxx

router_options=有効にするとERROR 1045になる模様

filterがうまく動作しない・・・
動きましたら使っているコンフィグをUPします。

起動

sudo maxscaleでも起動します。ヘルプは--help、停止はkill?
sudo systemctl start maxscale.serviceこっちがubuntu16.04では正式
ってかinitファイルも用意してもいいのではないかと言いたい。corosyncのサンプル的にも