Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。
因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。
在这里我只是配置的是主主复制。
1)怎么配置在两台MySQL服务器中的主主复制我就不介绍了,前面一篇博客已经介绍了。
2)在你的已经安装了mysql-proxy的主机上创建一个脚本:mysql-proxy-rw-splitting.sh,并运行
首先我们在前面当中已经运行了mysql-proxy我们需要先杀死这个进程:sudo killall mysql-proxy
- #!bash/bin
- /opt/mysql-proxy/bin/mysql-proxy \
- --proxy-address=1.0.0.3:4040 \
- --proxy-backend-addresses=17.16.15.112:3125 \ #在3125端口的服务器中配置可读可写
- --proxy-read-only-backend-addresses=172.16.15.112:3126 \ #在3126端口的服务器中配置只读
- --proxy-lua-script=/opt/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua \ #用这个lua脚本来实现读写分离
- --log-level=info \
- --log-file=/opt/mysql-proxy/logs/mysql-proxy-12.log \ #这是它的日志
- --daemon
3)我们查看一下日志,看是否脚本运行成功
sudo vi /opt/mysql-proxy/logs/mysql-proxy-12.log
- 2017-09-20 03:03:58: (critical) plugin proxy 0.8.5 started
- 2017-09-20 03:03:58: (message) proxy listening on port 1.0.0.3:4040
- 2017-09-20 03:03:58: (message) added read/write backend: 17.16.15.112:3125
- 2017-09-20 03:03:58: (message) added read-only backend: 172.16.15.112:3126
4)获取连接:mysql -uroot -p123456 -h1.0.0.3 -P4040
分析:我们的用户名和密码是使用的是MySQL服务器的用户名和密码,因为是要从他们两个当中获取连接,ip和端口都是使用代理的ip和端口。
mysql –uroot –p –h 192.168.41.201 –P 4040(注意修改my.conf中绑定ip后才能远程登录mysql,且有远程登录账号 GRANT ALL PRIVILEGES ON *.* TO ‘root’@‘%’ IDENTIFIED BY ‘’ WITH GRANT OPTION;)
如果远程连接很卡,或者很慢,可以关闭mysql节点 地址反向解析功能 在my.cnf 中添加 skip-name-resolve。
可以通过 JDBC 访问mysql-proxy进而访问mysql集群 Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://192.168.41.201:4040/test?user=briup&password=briup";
不错就点个“推荐”哦!
来源: http://www.cnblogs.com/zhangyinhua/p/7565373.html