首页 > 数据库 >使用MySQL Proxy实现读写分离的正确操作

使用MySQL Proxy实现读写分离的正确操作

时间:2022-10-21 16:47:30浏览次数:36  
标签:log usr 读写 MySQL lua proxy mysql local 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表示要输入密码。 

标签:log,usr,读写,MySQL,lua,proxy,mysql,local,Proxy
From: https://www.cnblogs.com/sheng9hhd/p/16813687.html

相关文章

  • WordPress 优化 MySQL 数据库慢查询
    搭建WordPress网站会占用大量的内存,还需要一些好些的服务器配置之外,我们如果想更好的给用户有更好的访问体验,对网站优化也是必不可少的。很多时候用WordPress越久,数据......
  • 阿里云RDS的mysql的sql_mode=only_full_group_by问题
    使用groupby分组时,查询字段没有分组的字段就会报错[Err]1055-Expression#1ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggregatedcolumn'test.u......
  • Linux 安装MySQL大表(千万行、亿级行表)操作新增字段、索引等,部署工具gh-ost
    安装go依赖包yum-yinstallbisonedgawkgcclibc6-devmake 下载go安装包[root@wjq~]#wgethttps://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.g......
  • ZABBIX监控MySQL
    zabbix3.0server已自带MySQL的模板了,只需配置好agent客户端,然后在web端主机增加模板就行了。同时部署:zabbix_agent安装zabbix_agent客户端操作:1.数据库用户授权登录my......
  • MySQL 索引
    MySQL索引概念聚簇索引将数据存储和索引放到了一块,找到了索引也就找到了数据。ps:MySQL的InnoDB引擎中,索引数据结构是B+树,主键索引叶子节点的值存储的就是MySQL的数......
  • Mysql 之 幻读
    文章目录​​1.面试问题​​​​2.什么是幻读​​​​3.如何结局幻读​​​​4.实验验证​​​​5.加锁分析​​​​6.总结​​1.面试问题MySQL记录锁+间隙锁可以防止删除......
  • MySQL常用语句整理
    该文章整理于牛客刷题中遇到的语法等问题该文章整理于牛客刷题中遇到的问题​​SQL​​​执行语句:​​**select–>where–>groupby–>having–>orderby......
  • MySQL中value和values的区别
    1.概况value和values都是用于插入数据时的关键字,从单词我们会联想到是不是value用于插入单挑数据,values用于插入多条数据,实际上他们并不是这样的,value可以用于插入单......
  • MySQL数据库员工部门表练习
    1.两表的数据和结构员工表:部门表:              2.新建......
  • 【TPC-DS】trino+S3+hive+postgresql性能测试----hadoop+mysql+hive安装部署(三)
    总体过程1、安装hadoop-3.2.02、安装hive-standalone-metastore-3.0.03、配置环境变量 安装hadoop-3.2.0下载hadoop的链接,选择hadoop3.2.0:​​https://archive.apache.org/......