使用MySQL Proxy实现读写分离的正确操作
环境:CentOS7
本文适用于包括Docker的所有环境,Docker安装这里不在阐述。
第一步 从官网下载tar包。官网链接:https://downloads.mysql.com/archives/proxy/
a)直接在CentOS上下载的
1 wget https://downloads.mysql.com/archives/get/p/21/file/mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
b)在Docker内部下载的
1 wget https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-debian6.0-x86-64bit.tar.gz
第二步 解压tar包
1 tar zxvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
第三步 复制压缩包内的文件到/usr/local/mysql-proxy下,没有这个目录的自己mkdir创建
1 mv mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy
第四步 配置mysql-proxy的配置文件
1 cd /usr/local/mysql-proxy 2 mkdir log # 创建日志目录 3 mkdir conf # 创建配置目录 4 vim /usr/local/mysql-proxy/conf/mysql-proxy.conf
下列是配置文件的示例:
1 [mysql-proxy] 2 user=root 3 admin-username=proxy 4 admin-password=xxxxxx 5 proxy-address=0.0.0.0:9524 6 proxy-backend-addresses=192.168.7.107:6358 7 # proxy-read-only-backend-addresses=192.168.7.107:6358 8 proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua 9 admin-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua 10 log-file=/usr/local/mysql-proxy/log/mysql-proxy.log 11 log-level=info 12 daemon=true 13 keepalive=true
参数说明:
参数名称 | 说明 |
user | 环境(CentOS或Docker)运行mysql-proxy服务的用户名 |
admin-username | mysql-proxy的管理员用户名 |
admin-password | mysql-proxy的管理员密码 |
proxy-address | 绑定mysql-proxy所在机器的IP地址、端口(默认是4040) |
proxy-backend-addresses | 设置主库的IP、端口 |
proxy-read-only-backend-addresses | (可选)设置从库的IP、端口 |
proxy-lua-script | 指定读写分离配置文件位置 |
admin-lua-script | 指定管理脚本 |
log-file | 日志位置 |
log-level | 定义log日志级别,由高到低分别有(error|warning|info|message|debug) |
daemon | 以守护进程方式运行 |
keepalive | mysql-proxy崩溃时,尝试重启 |
第五步 修改配置文件的读写权限
1 chmod 660 /usr/local/mysql-proxy/conf/mysql-proxy.conf
第六步 修改读写分离的配置文件,使其更容易触发读写分离
1 vim /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua 2 # 找到如下位置,修改注释部分,不要把中文注释放进去。 3 if not proxy.global.config.rwsplit then 4 proxy.global.config.rwsplit = { 5 min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1 6 max_idle_connections = 1, #默认8,改为1 7 is_debug = false 8 } 9 end
第七步 启动mysql-proxy
1 /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf &
注:&表示在后台运行
第八步 查看mysql-proxy是否启动成功
1 netstat -tupln | grep 9524
注:9524端口标红找到了,就起来了
第九步 连接mysql-proxy
1 mysql -uroot -h10.7.37.24 -P9524 -p # root是你要访问数据库的用户名,10.7.37.24是你安装mysql-proxy的机器的IP,-P9524是上面设置的mysql-proxy的端口,-p表示要输入密码。