mysql的读写分离的基本原理是:

让master(主数据库)来响应事务性操作,让slave(从数据库)来响应select非事务性操作,然后再采用主从复制来把master上的事务性操作同步到slave数据库中。

配置环境:

server4安装mysql-proxy调度器
server2和server3为设置好的一主一从

server2 (master)     server3(slaver)

tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local/  ###解压到/usr/local/这个目录中
cd /usr/local/

做软链接

建立日志目录

建立配置文件的存放目录

mysql 的读写分离

编辑配置文件

mysql 的读写分离

mysql 的读写分离

修改文件权限

编辑脚本文件

打开调度器

mysql 的读写分离

更改lua脚本的内容如下:40行改为1,41行改为2 (可根据需求自己设定)

mysql 的读写分离

查看3306端口是否开启

mysql 的读写分离

三台虚拟机安装lsof监控工具,进行监控,查看3306端口哪个终端占用

yum install lsof  -y ###安装lsof工具
lsof -i :3306   ###查看监控情况

mysql 的读写分离

mysql 的读写分离

在master端授权远程登陆数据库的用户

mysql 的读写分离,插入数据,

mysql 的读写分离

mysql 的读写分离

选择真机进行登陆和插入

mysql 的读写分离,插入数据,

mysql 的读写分离

此时,查看监控可知:连接到master端

mysql 的读写分离,插入数据,

插入信息

mysql 的读写分离

mysql 的读写分离

因为之前设置了lua脚本的最大连接数为2,所以在外部客户端连接数超过2时,就会发生读写分离
多开几个数据库连接

在slave中关闭slave

mysql 的读写分离

在真机连接中,插入数据,并查看会发现读不到,因为slave被关闭了,实现了读写分离

mysql 的读写分离

mysql 的读写分离

在slave中打开slave

mysql 的读写分离

在真机连接并查看,会看到数据,因为此时slave打开了,读的是server3

mysql 的读写分离

相关文章:

  • 2021-12-19
  • 2021-11-26
猜你喜欢
  • 2021-04-06
  • 2021-08-03
  • 2021-11-20
  • 2021-06-04
  • 2021-11-30
  • 2021-11-30
相关资源
相似解决方案