MaxScaleでRead/Write splitを使っていたが、AWSのAuroraにしたところ
master、slaveの判断をMaxScaleの方でできなくなったのでmaxscale起動時にmaster,slave設定を手動で行う。
maxscale.conf
masterとslave(Auroraだとwriter、reader)サーバの設定の箇所
[m_shard1]
type=server
address=server-1
port=3306
protocol=MySQLBackend
[s_shard1]
type=server
address=server-2
port=3306
protocol=MySQLBackend
maxscale_start.sh
server名の先頭がm_だったらmaster、s_だったらslaveとする。
maxscale
sleep 5
for server in `maxadmin list servers | grep 3306 | awk '{print $1}'`
do
i=`echo $server | cut -c 1`
[ "x$i" = "xm_" ] && maxadmin set server $server master
[ "x$i" = "xs_" ] && maxadmin set server $server slave
done