Maxscale实现Mysql读写分离:
注:
1、该工具只有一主,如主出了问题整体会有10s左右不可用(即使从会自动切为主)。
2、读设置的2台实际只生效了1台。
下载地址:
https://mariadb.com/downloads/#mariadb_platform-mariadb_maxscale
rpm -i maxscale-2.4.9-1.centos.7.x86_64.rpm
vi /etc/maxscale.cnf
[maxscale]
threads=auto
[server1]
type=server
address=10.0.1.3
port=3306
protocol=MariaDBBackend
[server2]
type=server
address=10.0.1.4
port=3306
protocol=MariaDBBackend
[server3]
type=server
address=10.0.1.5
port=3306
protocol=MariaDBBackend
[MariaDB-Monitor]
type=monitor
module=mariadbmon
servers=server1,server2,server3
user=aa
password=xxxxxx
monitor_interval=2000
[Select-Query-Filter]
type=filter
module=namedserverfilter
match01=^SELECT
#options=ignorecase
target01=server2,server3
[Read-Write-Service]
type=service
router=readwritesplit
servers=server1,server2,server3
user=aa
password=xxxxx
filters=Select-Query-Filter
connection_keepalive=300
[MaxAdmin-Service]
type=service
router=cli
[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MariaDBClient
port=3306
[MaxAdmin-Listener]
type=listener
service=MaxAdmin-Service
protocol=maxscaled
port=6603
:wq
注:
aa为mysql里设置的帐号
systemctl start maxscale
systemctl enable maxscale
验证:
读:
mysql -u bb -p'xxxx' -h 10.0.1.2 -P 3306 -e "select @@wsrep_node_name;"
写:
mysql -u bb -p'xxxxx' -h 10.0.1.2 -e "begin;insert ming.loadavg value(@@hostname,10,30);select @@hostname;commit;
mysql -u bb -p'xxxxx' -h 10.0.1.2 -e "select * from ming.loadavg;select @@hostname;"
来源:oschina
链接:https://my.oschina.net/u/4255339/blog/4306485