Amoeba实现MySQL数据库读写分离(2)

三 mysql授权amoeba用户登录(此处我的两台mysql服务器master和slave已经做好了主从同步,并且已经验证成功,需要做主从同步请看 )
master上授权:
mysql> grant select,insert,update,delete on . to 'amoeba'@'10.0.0.%' identified by '123456';
mysql> flush privileges;
slave上授权:
mysql> grant select on . to 'amoeba'@'10.0.0.%' identified by '123456';
mysql> flush privileges;
注意:此处授权的用户密码要和dbServers.xml中配置的一致。如果你的mysql开启所有库主从同步则你在主上授权的用户会同步到从库,解决方法是:1在从库上降权;2主从同步时不让mysql库同步

四 启动amoeba:

#cd /usr/local/amoeba/bin vim launcher 添加JAVA_HOME:

JAVA_HOME=/usr/java/jdk1.7.0_80

# cd /usr/local/amoeba/ # vim jvm.properties 修改VM_OPTIONS: JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m" # /usr/local/amoeba/bin/launcher 2018-01-02 23:34:21 [INFO] Project Name=Amoeba-MySQL, PID=48981 , starting... log4j:WARN log4j config load completed from file:/usr/local/amoeba/conf/log4j.xml 2018-01-02 23:34:22,152 INFO context.MysqlRuntimeContext - Amoeba for Mysql current versoin=5.1.45- mysql-amoeba-proxy-3.0.4-BETA log4j:WARN ip access config load completed from file:/usr/local/amoeba/conf/access_list.conf 2018-01-02 23:34:22,520 INFO net.ServerableConnectionManager - Server listening on /10.0.0.159:3306. #启动成功 # ss -tanlp LISTE 128 ::ffff:10.0.0.159:3306 :::*

五 测试:用另外的mysql客户端连接amoeba,测试时我暂停了主从同步,以便更直接的看出效果

# mysql -uroot -p123456 -h10.0.0.159

Amoeba实现MySQL数据库读写分离


主库上新增一条数据

Amoeba实现MySQL数据库读写分离


从库上加入一条数据

Amoeba实现MySQL数据库读写分离


回到mysql连接的客户端验证:

Amoeba实现MySQL数据库读写分离


只能查看从库的数据,说明基本成功,进一步验证,在客户端插入一条数据

Amoeba实现MySQL数据库读写分离


并且客户端在从库上没有查询到新插入的数据,回到主库确认下:

Amoeba实现MySQL数据库读写分离

到此验证成功,开启主从同步即可实现读写分离(开始同步前,请自行清理掉有差异的数据,以便主从能正常运行)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15c177c12a30ae90411e10730f7e72e9.html