Mysql-Proxy读写分离
准备
安装Mysql。这个参考Mysql主从双机备份。别忘了注释掉bind-address这一行。
安装readline
1 apt-get install libreadline6-devmysql-proxy需要lua脚本。lua官网
1 apt-get install lua5.2键入lua看看有没有成功。
安装mysql-proxy
1 apt-get install mysql-proxy如果找不到包,就换个源。阿里源
设置Proxy
修改设置
123 sudo vim /etc/default/mysql-proxyENABLED="true"OPTIONS="--defaults-file=/etc/mysql/mysql-proxy.cnf"编写配置文件/etc/mysql/mysql-proxy.cnf
1 sudo vim /etc/mysql/mysql-proxy.cnf如下。(别忘了删除注释)
123456789101112131415161718 [mysql-proxy]daemon = trueuser = root #运行mysql-proxy的用户proxy-skip-profiling = truekeepalive = truemax-open-files = 2048event-threads = 50pid-file = /var/run/mysql-proxy.pidlog-file = /var/log/mysql-proxy.loglog-level = debugadmin-address = :4401admin-username = Client #主从共有的mysql的账号admin-password = 123456 #密码admin-lua-script = /usr/share/mysql-proxy/admin-sql.lua #指定管理脚本proxy-address = :4040proxy-backend-addresses = xx.xx.xx.xx:3306 #主服务器ip+端口号proxy-read-only-backend-addresses = xx.xx.xx.xx:3306 #从服务器ip+端口号proxy-lua-script = /usr/share/mysql-proxy/rw-splitting.lua #指定读写分离配置文件位置其中管理脚本和分离配置文件根据你的情况配置。用这个命令来查找文件位置
1 dpkg -L mysql-proxy|grep '.lua'修改权限,否则无法启动
1 sudo chmod 0660 /etc/mysql/mysql-proxy.cnf修改读写分离配置文件
123456789 vi /usr/lib/mysql-proxy/lua/proxy/rw-splitting.luaif not proxy.global.config.rwsplit thenproxy.global.config.rwsplit = {min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1max_idle_connections = 1, #默认8,改为1is_debug = false}end启动
1 sudo /etc/init.d/mysql-proxy start测试4040端口
1 mysql -hlocalhost -P4040 -uroot -p在Master-VPS的mysql里创建账号Client
123 grant all on *.* to 'Client'@'mysql-proxy的IP' identified by '123456';flush privileges;exit;Master和Slave都装上ufw,并且允许Proxy的IP。操作参考Mysql主从双机备份
操作完成,重启一下mysql
1 /etc/init.d/mysql restart
测试
本地
1 mysql -h Proxy_VPS_IP -u Client --port=4040 -p会发现
哈哈哈,其实整个过程是没有问题的,逻辑理论都很清晰,换个mysql-proxy版本试试就好了。但是我他妈还没是成功。