要读写分离,要在两个数据库在主从同步后实现:
参考文章 主从同步:mysql数据库的主从同步实现。。
- 1.要有读写分离的代理
mysql-proxy https://downloads.mysql.com/archives/proxy/
下载好 解压 - 2.更改proxy的配置 mysql-proxy.conf
[mysql-proxy]
admin-username=proxy #用户名
admin-password=root #密码
admin-lua-script=D:/MysqlJiQun/mysql-proxy/lib/mysql-proxy/lua/admin.lua #脚本,按照自己电脑的路径修改
proxy-backend-addresses=127.0.0.1:3307 #写服务,ip实际开发,修改
proxy-read-only-backend-addresses=127.0.0.1:3308 #读服务,ip实际开发,修改
proxy-lua-script=D:/MysqlJiQun/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua #脚本,按照自己电脑的路径修改
log-file=D:/MysqlJiQun/mysql-proxy/mysql-proxy.log #日志文件,想放在那都行
log-level=debug
daemon=true
keepalive=true
**
!!!!!!!!!
注意配置文件中不能存在注解,不然会报错,记得删掉注解
**
- 3.改好配置后就把这个启动起来
在proxy的bin目录下运行命令:配置文件的路径根据自己修改
mysql-proxy -P 127.0.0.1:4040 --defaults-file=D:\MysqlJiQun\mysql-proxy\conf\mysql-proxy.conf
如果没有报错说明启动成功!!
- 4.这时候如果直接去连接的话,会报错
这个错误,不是指我们的proxy的连接密码,而是读服务和写服务的连接失败!!
在连接之前我们要先配置用户,在master主服务上添加一个用户:
用户名和密码和proxy的配置文件中一致
因为我们做了主从同步,所以从服务器自然也有了这个用户,就不需要再配置了。
再次连接proxy,就连接成功!! - 5.我们测试读写分离是否成功
打开写服务和读服务的日志文件,清空。
在proxy连接中对表进行修改,对比日志文件的SQL语句。
在proxy连接中对表进行查询,对比日志文件的SQL语句。
提示:proxy中有个设置,当连接数到达4个的时候才会开启读写分离,所以连接少的话,只会在一个数据库操作,要体现读写分离,可以修改rw-splitting.lua文件中找到min_idle_connections进行修改。
如果中途出现什么意外错误,可以试着把所用ip变成网络ip