加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql入门MySQL Proxy的安装及基本命令使用教程

发布时间:2020-12-12 01:30:09 所属栏目:MySql教程 来源:网络整理
导读:《Mysql入门MySQL Proxy的安装及基本命令使用教程》要点: 本文介绍了Mysql入门MySQL Proxy的安装及基本命令使用教程,希望对您有用。如果有疑问,可以联系我们。 MySQL Proxy最壮大的一项功能是告终“读写离别(Read/Write Splitting)”.它的原理是让主数据

《Mysql入门MySQL Proxy的安装及基本命令使用教程》要点:
本文介绍了Mysql入门MySQL Proxy的安装及基本命令使用教程,希望对您有用。如果有疑问,可以联系我们。

MySQL Proxy最壮大的一项功能是告终“读写离别(Read/Write Splitting)”.它的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询.数据库复制被用来把事务性查询导致的改变同步到集群中的从数据库.MYSQL数据库

0.必备软件:MYSQL数据库

1、LUAMYSQL数据库

能够去LUA的官方下载:dpa.nsysu.edu.tw/Downloads/MySQL-Proxy/.MYSQL数据库

可能去MYSQL官方下载源代码.MYSQL数据库

我这里下载了:MYSQL数据库

mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.6.0.tar.gzMYSQL数据库

3、测验过程中废止了B和C的REPLICATION.这么SQL语句一下子就看出来从哪里来的.MYSQL数据库

万一是M-S(能够先在SLAVE上举行STOP SLAVE)MYSQL数据库


1. 安装
下载已经编译好的安装包,或者预编译安装包均可,在这里,使用预编译版本.MYSQL数据库

[@s1.yejr.com ~]# tar zxf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz
[@s1.yejr.com ~]# cd mysql-proxy-0.6.0-linux-rhas4-x86
#可以看到有2个目录
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# ls
sbin share
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# mv sbin/mysql-proxy /usr/local/sbin/
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# ls share
mysql-proxy     tutorial-constants.lua tutorial-packets.lua   tutorial-rewrite.lua tutorial-warnings.lua
tutorial-basic.lua tutorial-inject.lua   tutorial-query-time.lua tutorial-states.lua
#将lua脚本放到/usr/local/share下,以备他用
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# mv share/mysql-proxy /usr/local/share/
#删除符号连接等垃圾代码
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# strip /usr/local/sbin/mysql-proxy

2. 启动
编译一下启动管理脚本:MYSQL数据库

[@s1.yejr.com ~]# vi /etc/init.d/mysql-proxy
#!/bin/sh
export LUA_PATH=/usr/local/share/mysql-proxy/?.lua
mode=$1
if [ -z "$mode" ] ; then
 mode="start"
fi
case $mode in
 'start')
  mysql-proxy --daemon 

--admin-address=:4401 

--proxy-address=:3307 

--proxy-backend-addresses=:3306 

--proxy-read-only-backend-addresses=192.168.133.232:3306 

--proxy-read-only-backend-addresses=10.10.74.61:3306 

--proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua
  ;;
 'stop')
  killall mysql-proxy
  ;;
 'restart')
  if $0 stop ; then
   $0 start
  else
   echo "retart failed!!!"
   exit 1
  fi
  ;;
esac
exit 0

现在解释一下启动脚本:
--daemon 采用daemon方式启动
--admin-address=:4401 指定mysql proxy的管理端口,表示本机的4401端口
--proxy-address=:3307 指定mysql proxy的监听端口,也可以用 127.0.0.1:3307 表示
--proxy-backend-addresses=:3306 指定mysql主机的端口
--proxy-read-only-backend-addresses=192.168.1.1:3306 指定只读的mysql主机端口
--proxy-read-only-backend-addresses=192.168.1.2:3306 指定另一个只读的mysql主机端口
--proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua 指定lua脚本,使用的是rw-splitting脚本,用于读写分离MYSQL数据库

完整的参数可以运行以下命令查看:MYSQL数据库

mysql-proxy --help-all

运行以下命令启动/停止/重启mysql proxy:MYSQL数据库

[@s1.yejr.com ~]# /etc/init.d/mysql-proxy start
[@s1.yejr.com ~]# /etc/init.d/mysql-proxy stop
[@s1.yejr.com ~]# /etc/init.d/mysql-proxy restart

3. 试用MYSQL数据库

[@s1.yejr.com ~]# mysql -h127.0.0.1 -uroot -P3307
mysql> show processlist;
+-------+------+----------------+------+---------+------+-------+------------------+
| Id  | User | Host      | db  | Command | Time | State | Info       |
+-------+------+----------------+------+---------+------+-------+------------------+
| 30052 | root | localhost:9656 | NULL | Query  |  0 | NULL | show processlist |
+-------+------+----------------+------+---------+------+-------+------------------+

可以看到,产生了一个新连接.MYSQL数据库

用sysbench测试一下,看会不会挂掉:MYSQL数据库

[@s1.yejr.com ~]# sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 

--mysql-socket=/tmp/mysql.sock --mysql-user=root --mysql-db=test prepare
[@s1.yejr.com ~]# sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 

--mysql-socket=/tmp/mysql.sock --mysql-user=root --mysql-db=test run
.........
.........
Threads fairness:
  events (avg/stddev):      10000.0000/0.00
  execution time (avg/stddev):  23.0387/0.00

还好,没给大家丢脸,剩下的测试自己完成吧 :)MYSQL数据库

4. 其他
mysql proxy还可以实现连接池的功能,这在很多LAMP开发中是软肋,因此,有了mysql proxy,就可以不用再担心连接数超限的问题了.
如果使用rw-splitting.lua脚本的话,最好修改以下2个参数的默认值:MYSQL数据库

min_idle_connections = 1
max_idle_connections = 3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读