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

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

0.必备软件:

1、LUA

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

可能去MYSQL官方下载源代码。

我这里下载了:

mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.6.0.tar.gz

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

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

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

[@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. 启动
编译一下启动管理脚本:

[@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-proxy --help-all

运行以下命令启动/停止/重启mysql proxy:

[@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. 试用

[@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 |
+-------+------+----------------+------+---------+------+-------+------------------+

可以看到,产生了一个新连接。

用sysbench测试一下,看会不会挂掉:

[@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

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

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

min_idle_connections = 1
max_idle_connections = 3
(0)

相关推荐

  • MySQL数据库基础命令大全(收藏)

    整理了一下mysql基础命令,分享一下 #启动,停止,重启MySql服务 service mysql start|stop|restart /etc/init.d/mysql restart|start|restart #连接MySQL数据库 mysql -h127.0.0.1 -uroot -p123456 #查看MySQL版本 select version() #显示数据库 show databases #使用数据库 use [database] #当前选择的数据库 select datab

  • MySQL连接及基本信息查看命令汇总

    学习PHP就不得不提MySQL,虽然有phpMyadmin这样的工具可以图形化操作数据库,但我还是想借学习PHP的机会使用下命令行方式操作数据库.以下就是我的学习小结,包括命令行连接数据库,查看当前用户,查看当前使用的存储引擎,查看MySQL版本等基本命令. 连接数据库 命令格式:mysql -h hostname -u username -p -h指定要连接的MySQL数据库所在的主机,如果是本机,可以省略. -u指定登录的用户名,如果不指定,默认是操作系统的登录用户名. -p指定密码.可以在

  • LINUX启动/重启/停上MYSQL的命令(详解)

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3.使用 safe_mysqld 启动:safe_mysqld& 二.停止 1.使用 service 启动:service mysqld stop 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3.mysqladmin shutdown 三.重启 1.使用

  • 简单整理MySQL的日志操作命令

    1.首先确认你日志是否启用了 MySQL>show variables like 'log_bin'; 如果启用了,即ON那日志文件就在MySQL的安装目录的data目录下 2.怎样知道当前的日志 MySQL> show master status; 3.看二进制日志文件用MySQLbinlog shell>MySQLbinlog mail-bin.000001 或者 shell>MySQLbinlog mail-bin.000001 | tail 4.正确删除MySQL BIN-

  • MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)

    先看一下最简单的例子,在test中,添加一个字段,字段名为birth,类型为date类型. mysql> alter table test add column birth date; Query OK, 0 rows affected (0.36 sec) Records: 0  Duplicates: 0  Warnings: 0 查询一下数据,看看结果: mysql> select * from test; +------+--------+-----------------------

  • MySQL命令行删除表中的一个字段

    先看看删除之前的表结构: mysql> select * from test; +------+--------+----------------------------------+------------+------------+------------+------------+ | t_id | t_name | t_password                       | t_birth    | birth      | birth1     | birth2     |

  • MySQL Proxy的安装及基本命令使用教程

    MySQL Proxy最壮大的一项功能是告终"读写离别(Read/Write Splitting)".它的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询.数据库复制被用来把事务性查询导致的改变同步到集群中的从数据库. 0.必备软件: 1.LUA 能够去LUA的官方下载:dpa.nsysu.edu.tw/Downloads/MySQL-Proxy/. 可能去MYSQL官方下载源代码. 我这里下载了: mysql.cdpa.nsysu.edu.tw/Downloads/My

  • mysql 5.5 安装配置方法图文教程

    回忆一下mysql 5.5 安装配置方法,整理mysql 5.5 安装配置教程笔记,分享给大家. MySQL下载地址:http://dev.mysql.com/downloads/installer/ 1.首先进入的是安装引导界面 2.然后进入的是类型选择界面,这里有3个类型:Typical(典型).Complete(完全).Custom(自定义).这里建议 选择"自定义"(Custom)安装,这样可以自定义选择MySQL的安装目录,然后点"Next"下一步,出现自

  • win7下MySql 5.7安装配置方法图文教程

    上学的时候经常使用MySql,当时也没想其他,主要是MySql对电脑的要求比较低,负载比较小.工作后一直在使用Oracle,现在因为项目的需要,重新安装MySql,发现变化有点多. 本经验适用于安装MySql最新版本数据库. 具体实现步骤: 下载MySql,作者通过度娘搜索MySql,找到文件mysql-installer-community-5.7.3.0-m13.2063434697.msi,虽然这一个文件比较大,但是不用我们可以的区分64位还是32位,如图 双击安装包,会出现安装前准备,当

  • mysql压缩包版安装配置方法图文教程

    Mysql安装的时候可以有msi安装和zip解压缩两种安装方式.zip压缩包解压到目录,要使用它还需对它进行一定的配置.下面对Mysql压缩包版的安装方法进行详细的描述,要是此文有不正确的认识,希望大家指正,非常感谢. 一.下载mysql压缩包文件 下载地址:http://dev.mysql.com/downloads/mysql/ ①选择相应的mysql版本:如图 ②根据电脑系统选择相应的版本,点击Download进入到跳转页面进行无登录下载(即无需在网站注册登录):如图1,图2所示 点击"N

  • Ubuntu 18.04下mysql 8.0 安装配置方法图文教程

    本文为大家分享了mysql 8.0安装配置方法,供大家参考,具体内容如下 直接使用apt install mysql-server安装,那么恭喜你踩坑. sudo apt install mysql-server默认会安装MySQL 5.7,将会出现一些莫名的问题,例如:安装过程没有要求输入root密码,而登录mysql时会要求密码(我就是遇到了这个问题,结果搞了一下午,等等-- 阅读了一下MySQL安装指南,发现MySQL5.7版本最高只适配到Ubuntu17.04,而MySQL8.0最高适配

  • mysql 5.7 安装配置方法图文教程

    本文教程为大家分享了mysql5.7安装配置方法,供大家参考,具体内容如下 mysql-installer-community-5.7.9.1各版本相关说明: mysql-installer-web-community-5.7.9.0 : 有web标识的表示在线安装: mysql-installer-community-5.7.9.1 : 没有web标识的表示离线安装: mysql-cluster-gpl-7.4.8-winx64 : 单独这个是没有用的,需要在mysql-installer-c

  • Linux虚拟机下mysql 5.7安装配置方法图文教程

    记录一下Linux虚拟机下MySQL安装配置方法 一. 下载mysql5.7 http://mirrors.sohu.com/mysql/MySQL-5.7/ Linux下载: 输入命令:wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 二.建立用户,以及mysql的目录 1.建立一个mysql的组 输入命令: groupadd mysql 2.建立mysql用户,并放到m

  • mysql8.0.2离线安装配置方法图文教程

    离线安装MySQL_8.0.2方法,供大家参考,具体内容如下 从MySQL官网中获取了下面这个压缩包: 解压之后变成这个样子: 文件里面是这个样子: 下面开始了,请注意. 第一大步:配置my.ini文件 内容如下: [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录,若报错用反斜杠 basedir=D:\\tools\\ mysql-8.0.2-dmr

  • 最全的mysql 5.7.13 安装配置方法图文教程(linux) 强烈推荐!

    linux环境Mysql 5.7.13安装教程分享给大家,供大家参考,具体内容如下 1系统约定 安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位置:/data/log/mysql 2下载mysql 在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载: 执行如下命名: #mkdir /data/software #cd /da

  • mysql 5.7.13 安装配置方法图文教程(win10 64位)

    本文实例为大家分享了mysql 5.7.13 winx64安装配置方法图文教程,供大家参考,具体内容如下 (1) 下载MySQL程序,您可以从MySQL官网上下载,或者点击这里下载 (2) 解压mysql-5.7.13-winx64.zip文件到你想安装的目录,我的例子是 D:\program\mysql-5.7.13-winx64.其中的目录结构如下: 文件夹:bin docs include lib share 文件: COPYING README my-default.ini (3) 拷贝

随机推荐