废话不多说,直接开干:

1、安装环境:

yum -y install libevent glib2 lua gcc gcc-c++ autoconf mysql-devel libtool pkgconfig ncurses ncurses-devel libevent-devel 
2、下载文件:

wget ftp://mysql.cdpa.nsysu.edu.tw/Unix/Database/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.5.tar.gz
3、编译安装:

tar zxvf mysql-proxy-0.8.5.tar.gz
cd mysql-proxy-0.8.5
 ./configure --prefix=/home/mysql-proxy/
make
make install

mkdir /home/mysql-proxy/logs
mkdir /home/mysql-proxy/lua
cp lib/admin-sql.lua /home/mysql-proxy/lua

cp lib/rw-splitting.lua /home/mysql-proxy/lua

cp -r lib/proxy /home/mysql-proxy/

4、编辑配置文件:
vi /etc/mysql-proxy.cnf   #创建配置文件
[mysql-proxy]
user=root #运行mysql-proxy用户
admin-username=proxy #主从mysql共有的用户
admin-password=123.com #用户的密码
proxy-address=10.10.10.49:4000 #mysql-proxy运行ip和端口,不加端口,默认4040
proxy-read-only-backend-addresses=10.10.10.50:3306 #指定后端从slave读取数据
proxy-backend-addresses=10.10.10.51:3306 #指定后端主master写入数据
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定读写分离配置文件位置
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理脚本
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置
log-level=info #定义log日志级别,由高到低分别有(error|warning|info|message|debug)
daemon=true    #以守护进程方式运行
keepalive=true #mysql-proxy崩溃时,尝试重启
保存退出!
chmod 660 /etc/mysql-porxy.cnf

5、修改rw-splitting.lua文件
vi /usr/local/mysql-proxy/lua/rw-splitting.lua
if not proxy.global.config.rwsplit then
 proxy.global.config.rwsplit = {
  min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1
  max_idle_connections = 1, #默认8,改为1
  is_debug = false
 }
end

6、启动:
/home/mysql-proxy/bin/mysql-proxy --defaults-config=/etc/mysql-proxy.cnf
查看进程:
netstat -tupln | grep 4000 #已经启动
tcp 0 0 10.10.10.49:4000 0.0.0.0:* LISTEN 1264/mysql-proxy
关闭mysql-proxy使用:killall -9 mysql-proxy

7、在主库上进行权限分配:
 grant all on *.* to 'proxy'@'10.10.10.49' identified by '123456';

8、测试(请配置防火墙开放4000端口):
mysql -u proxy -h 10.10.10.49 -P 4000 -p123456

创建数据库和表,这时的数据只写入主mysql,然后再同步从slave,可以先把slave的关了,看能不能写入

最新文章

  1. Android开发-之认识palette
  2. Nginx下TIME_WAIT过多的调优
  3. 调用百度地图Api实现的查看地图功能的小插件
  4. F5 负载均衡
  5. jenkis编译报错:需要class,interface或enum
  6. cocos2dx3.1.1+cocosstudio+lua问题总结
  7. android ListView和GridView拖拽移位具体实现及拓展
  8. T-SQL 脚本
  9. imageNamed 与 initWithContentsOfFile 区别
  10. google官方的下拉刷新+自定义上拉加载更多
  11. MySQL InnoDB 逻辑存储结构
  12. Tensorflow object detection API 搭建物体识别模型(二)
  13. flask 定义数据库关系(多对多)
  14. 使用UMDH查找内存泄露
  15. C#之WinForm设置控件居中
  16. sql server 向mysql前移数据-单引号问题
  17. MySQL从删库到跑路_高级(二)——自定义函数
  18. 微信小程序 base64图片在canvas上画图
  19. [转]WebForm中使用MVC
  20. mongoDB的常用语法

热门文章

  1. 10.2.翻译系列:使用Fluent API进行属性映射【EF 6 Code-First】
  2. lua -- 系统提示框
  3. 【Python】Python的安装与个人使用记录
  4. docker运行中的container怎么修改之前run时的env
  5. (转)Linux服务器磁盘空间占满问题
  6. vue2.0 实现click点击当前li,动态切换class
  7. T-SQL基础查询——单表查询
  8. headfirst python 03, 04
  9. Java知多少(63)线程间通信
  10. 数据中心内负载均衡-ECMP的使用分析