承接上文{{MySQL 安装及主从异步、半同步、同步实现}}
如果我们已经优化 了 SQL,但是读依旧还是瓶颈时,这时就可以选择“读写分离”架构了。 读写分离首先需要将数据库分为主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之 间通过主从复制机制进行数据的同步
实现效果是代理库进行分发实现主库写,从库读
创建代理服务器
上传 mysql-proxy-0.8.5-linux-el6-x86-64bit.tar 并解压
在/etc 下创建配置文件 mysql-proxy.cnf,添加配置信息,授予权限
#mysql-proxy.cnf配置内容
user=root
admin-username=root
admin-password=root
proxy-address=172.16.94.8:3300
proxy-backend-addresses=172.16.94.5:3306
proxy-read-only-backend-addresses=172.16.94.6:3306
proxy-lua-script=/root/software/mysql/mysqlproxy/mysql-proxy-0.8.5-linux-el6-x86-64bit/share/doc/mysql-proxy/rw-splitting.lua
log-file=/var/log/mysql-proxy.log
log-level=debug
daemon=true
keepalive=true
115 tar -xzvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
116 vim /etc/mysql-proxy.cnf
117 chmod 660 /etc/mysql-proxy.cnf
131 vim mysql-proxy-0.8.5-linux-el6-x86-64bit/share/doc/mysql-proxy/rw-splitting.lua
lua 脚本默认 4 个连接以上才使用读写分离,为了看到效果修改为 1
接下来启动 mysql-proxy
#linux默认是从usr/bin目录下查找命令启动,所有需要加上./代表当前目录下
./mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
出现错误信息
百度一下
mysql-proxy 启动
./mysql-proxy —defaults-file=/etc/mysql-proxy.cnf
提示:(critical) mysql-proxy-cli.c:326: loading config from ‘/etc/mysql-proxy.cnf’ failed: Key file does not start with a group
原因是配置文件 mysql-proxy.cnf 没有加 [mysql-proxy]添加上 [mysql-proxy] 后问题解决
原文链接:https://blog.csdn.net/Lossdate/article/details/115190860
vim /etc/mysql-proxy.cnf
#添加 [mysql-proxy]
#再次启动,注意下防火墙也要关掉
./mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
#启动成功
测试效果实现
在 navicat 上新建一个代理数据库的连接
注意 ip 和端口号别写错了
测试下写入一条数据
在主库和从库查看数据
mysql -uroot -proot
use lanebin
select * from dept ;
因为已经开启了主从复制,关掉主从复制再次测试一下
#从库关闭主从复制
stop slave;
再次查看主库和从库信息
成功实现了主库写入,从库并没有写入