mysql-proxy安装及简单使用

所使用服务器列表 

tpl01NAT29. 159mysql(源码)/etc/my.cnf提供mysql服务(主)yw009数据库主从+代理搭建mysql 5.6.39
tpl02NAT29. 152mysql(源码)/etc/my.cnfmysql服务(从)yw009数据库主从+代理搭建mysql 5.6.39
tpl03NAT29. 160mysql-proxy/usr/local/mysql-proxy代理服务yw009数据库主从+代理搭建0.8.5
workNAT29. 158\\mysql客户端yw009数据库主从+代理搭建\


步骤一:安装mysql-proxy

1)下载mysql-proxy 在github.com 上下载0.8.5版

16  tar -xvf mysql-proxy-rel-0.8.5.tar 

   18  yum -y install lua

   54  yum install lua-devel

   33  yum install cmake

   34  yum install make

   41  yum -y install gcc openssl-devel pcre-devel zlib-devel ncurses-devel

   44  yum -y install libtool

   63  yum -y install gcc gcc-c++


   79  yum search flex

   80  yum install flex.x86_64

   51  yum install mysql-devel

   68  yum -y install glib2-devel

   70  yum -y install libevent-devel


   94  ./autogen.sh 

   96  ./configure --prefix=/usr/local/mysql-proxy

    make

    make install

   79  yum search flex

   80  yum install flex.x86_64


  126  mkdir /usr/local/mysql-proxy/lua

  127  cp lib/rw-splitting.lua /usr/local/mysql-proxy/lua/

  128  cp lib/admin-sql.lua /usr/local/mysql-proxy/lua/

  131  cp -r lib/proxy /usr/local/mysql-proxy/lua/

  132  cd /usr/local/mysql-proxy/

  135  vim lua/rw-splitting.lua 


2) 搭建数据库主从 Master (tpl01) ,Slave (tpl02)  ;可参考其他篇博客

3)启动mysql-proxy服务

  139  bin/mysql-proxy -P 192.168.29.160:3306 -b 192.168.29.159:3306 -r 192.168.29.152:3306 -s lua/rw-splitting.lua &

启动后可确认监听状态:

netstat -anptu | grep mysql;

为了每次开机后能够自动运行mysql-proxy,可以将相关操作写到/etc/rc.local配置文件内:

步骤二: 测试读写分离

1) 在MySQL Master服务器上设置用户授权

以root 用户为例,允许其从192.168.29.0/24 网段的客户机远程访问。首先登入Master服务器添加下列授权:

mysql > grant all on*.* to root@'192.168.29.%' identified by '123qwe';

因为此前已配置mysql库的主从同步,Slave上的root授权会自动更新:

2)从客户机work 访问MySQL数据库

 注意连接的是mysql-proxy服务器,而并不是Master或 Slave:

 测试数据库写入操作:

mysql > create database proxydb;

mysql > use proxydb;

mysql > create table proxytb( id int(4), host varchar(48));

mysql > insert into proxytb values(1, 'aa'), (2, 'bb');

mysql > select * from proxytb;

3) 在 Master 和 Slave 确认新建的库,表

4) 观察MySQL 代理访问的网络连接

在 Master上可看到来自Slave 和proxy代理的网路连接:

 netstat -anptu | grep mysql

在Proxy代理上 可以看到与MySQL读,写服务器的网络连接:

netstat -anptu | grep mysql


5) 怎么才能确定读的数据是确实无疑 来自从数据库呢?

可以 使用 root 用户登入 slave 修改一条记录(这样主从数据库数据就不一致了,我们方便观察)

mysql> update proxytb set host='ee' where id=2;


在 客户机work 上 连接mysql 查看数据:

mysql > select * from proxytb;


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL-Proxy是一个用于MySQL数据库的代理服务器,它可以拦截和修改MySQL协议中的数据包,并允许你在数据包到达MySQL服务器之前或之后执行自定义操作。使用MySQL-Proxy可以实现很多有用的功能,如负载均衡、查询过滤、缓存优化等。下面介绍一下如何使用MySQL-Proxy,具体步骤如下: 1. 安装MySQL-Proxy MySQL-Proxy可以从官方网站下载,也可以使用包管理器进行安装。以Ubuntu为例,可以使用以下命令进行安装: ``` sudo apt-get install mysql-proxy ``` 2. 创建配置文件 MySQL-Proxy的配置文件为Lua脚本,需要在配置文件中指定监听端口、代理MySQL服务器的地址和端口、以及自定义的Lua脚本等。可以使用以下命令创建一个简单的配置文件: ``` sudo nano /etc/mysql-proxy.cnf ``` 然后在配置文件中添加以下内容: ``` [mysql-proxy] daemon = true proxy-address = 127.0.0.1:3306 proxy-backend-addresses = 127.0.0.1:3307 proxy-lua-script = /etc/mysql-proxy.lua ``` 其中,`proxy-address`是MySQL-Proxy监听的地址和端口,`proxy-backend-addresses`是要代理MySQL服务器的地址和端口,`proxy-lua-script`是Lua脚本的路径。 3. 编写Lua脚本 MySQL-Proxy的Lua脚本可以拦截MySQL协议中的数据包,并对其进行修改或者过滤。可以根据实际需求编写自己的Lua脚本。以下是一个简单的例子,它会将所有的SELECT语句转换为SHOW TABLES语句: ``` function read_query(packet) if packet:byte() == proxy.COM_QUERY then if packet:sub(2, 7) == "SELECT" then local new_packet = packet:gsub("SELECT", "SHOW TABLES") proxy.queries:append(1, new_packet, {resultset_is_needed = true}) return proxy.PROXY_SEND_QUERY end end end ``` 4. 启动MySQL-Proxy 使用以下命令启动MySQL-Proxy: ``` sudo mysql-proxy --defaults-file=/etc/mysql-proxy.cnf ``` 然后就可以在客户端中连接MySQL-Proxy并进行查询了。 以上就是使用MySQL-Proxy的基本步骤。实际上,MySQL-Proxy还支持很多高级功能,如多个MySQL服务器的负载均衡、缓存优化、查询路由等,可以根据实际需求进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值