MySQL读写分离

1、读写分离的介绍

illustration

​ MySQL读写分离基本原理是让master数据库处理写操作-slave数据库处理读操作。master将写操作的变更同步到各个slave节点。

​ MySQL读写分离能提高系统性能的原因在于:

​ 1、物理服务器增加-机器处理能力提升。拿硬件换性能。

​ 2、主从只负责各自的读和写-极大程度缓解X锁 (排它锁) 和S锁 (共享锁) 争用。

​ 3、slave可以配置myiasm引擎-提升查询性能以及节约系统开销。

​ 4、master直接写是并发的-slave通过主库发送来的binlog恢复数据是异步。

​ 5、slave可以单独设置一些参数来提升其读的性能。

​ 6、增加冗余-提高可用性。

2、读写分离的配置

##### 1、硬件配置

``plain master 192.168.85.11slave 192.168.85.12proxy 192-168.85.14 `

##### 2、首先在master和slave上配置主从复制

##### 3、进行proxy的相关配置

`shell #1、下载mysql-proxyhttps://downloads.mysql.com/archives/proxy/#downloads#2、上传软件到proxy的机器直接通过xftp进行上传#3、解压安装包tar -zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz#4、修改解压后的目录mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit mysql-proxy#5、进入mysql-proxy的目录cd mysql-proxy#6、创建目录mkdir confmkdir logs#7、添加环境变量#打开/etc/profile文件vi /etc/profile#在文件的最后面添加一下命令export PATH=$PATH:/root/mysql-proxy/bin#8、执行命令让环境变量生效source /etc/profile#9、进入conf目录-创建文件并添加一下内容vi mysql-proxy.conf添加内容[mysql-proxy]user=rootproxy-address=192.168.85.14:4040proxy-backend-addresses=192.168.85.11:3306proxy-read-only-backend-addresses=192.168.85.12:3306proxy-lua-script=/root/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lualog-file=/root/mysql-proxy/logs/mysql-proxy.loglog-level=debugdaemon=true#10、开启mysql-proxymysql-proxy --defaults-file=/root/mysql-proxy/conf/mysql-proxy.conf#11、查看是否安装成功-打开日志文件cd /root/mysql-proxy/logstail -100 mysql-proxy.log#内容如下:表示安装成功2019-10-11 21:49:41: (debug) max open file-descriptors = 10242019-10-11 21:49:41: (message) proxy listening on port 192.168.85.14:40402019-10-11 21:49:41: (message) added read/write backend: 192.168.85.11:33062019-10-11 21:49:41: (message) added read-only backend: 192.168.85.12:33062019-10-11 21:49:41: (debug) now running as user: root (0/0) `

##### 4、进行连接

`shell #mysql的命令行会出现无法连接的情况-所以建议使用客户端mysql -uroot -p123 -h192.168.85.14 -P 4040 ``