准备两台mysql服务器,master(192.168.43.64)、slave(192.168.84.129)mysql
master配置:sql
log-bin=mysql-bin binlog_format=mixed server_id=1 binlog_checksum=none
slave配置:服务器
而后给master受权并查看二进制文件名称和位置:lua
进入从服务器执行以下sql并开启slave、查看slave状态:spa
change master to master_host='192.168.43.64' ,master_user='root' ,master_password='123' ,master_log_file='mysql-bin.000032' ,master_log_pos=1912;
最后验证主从配置:debug
问题总结:3d
一、两个主从mysql要能远程登陆,不然相互没法配置成功。日志
二、因为mysql5之前有binlog-checksum,致使主从配置失败,在配置文件中加binlog_checksum=none后重启mysql服务。
code
读写分离的实现:orm
下载mysql-proxy,安装缺乏的vc库,在mysql-proxy文件夹中建立mysql-proxy.cnf配置文件。以下所示:
[mysql-proxy] admin-username=root admin-password=root admin-lua-script=D:/BtSoft/WebSoft/mysql-proxy/lib/mysql-proxy/lua/admin.lua proxy-backend-addresses=192.168.43.64:3306 proxy-read-only-backend-addresses=192.168.84.129:3306 proxy-lua-script=D:/BtSoft/WebSoft/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua log-file=D:/BtSoft/WebSoft/mysql-proxy/mysql-proxy.log log-level=debug daemon=true keepalive=true
参数介绍以下:
admin-username:用于中间件链接的用户,这里我仍是用root偷懒
admin-password:同上用户密码
admin-lua-script:根据存放的文件位置自行调整
proxy-backend-addresses:主库服务器+端口
proxy-read-only-backend-addresses:从库服务器+端口,多个从库用,隔开
proxy-lua-script:根据存放的文件位置自行调整
log-file:日志文件存放位置,若是你指定了一个路径,请确保手动建立了对应的文件夹,不然会报错
log-level:日志级别
daemon:以守护进程方式运行
keepalive:长链接
修改rw-splitting.lua中的4改成1,#默认超过4个链接数时,才开始读写分离
if not proxy.global.config.rwsplit then proxy.global.config.rwsplit = { min_idle_connections = 1, max_idle_connections = 8, is_debug = false } end
打开cmd输入命令:
D:\BtSoft\WebSoft\mysql-proxy\bin\mysql-proxy -P 192.168.43.64:4040 --defaults-file=D:\BtSoft\WebSoft\mysql-proxy\mysql-proxy.conf
执行结果:
出现上图则说明mysql-proxy配置成功。
验证是否成功读写分离:
1.链接mysql-proxy
插入一条数据到mysql-proxy中,如图
在从服务器查看,如图: