Mysql Proxy的安装配置详细教程

8.12.1.1 Mysql Proxy的安装

安装需要的基础组件,基本系统都可以满足lua的组件版本要求

安装lua(确定是否需要安装)
yum -y install gcc gcc-c++ autoconf automake zlib libxml ncurses-devel libmc rypt libtool flex
pkgconfig glib* readline-devel libevent-devel

? 安装glib
http://ftp.gnome.org/pub/gnome/sources/glib/

? 安装lua
wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zvfx lua-5.1.4.tar.gz

注意
mkdir -p /usr/local/lua
cd lua-5.1.4;vi Makefile
sed -i ‘s#INSTALL_TOP=.#INSTALL_TOP=/usr/local/lua#g‘ Makefile 改安装路径
如果是64位,需改如下
sed -i ‘s#^CFLAGS=.
#CFLAGS= -O2 -fPIC -Wall $(MYCFLAGS) #g‘ src/Makefile

make linux && make install

mkdir -p /usr/local/lua-5.1.4/lib/pkgconfig
cp ./etc/lua.pc /usr/local/lua-5.1.4/lib/pkgconfig
sed -i ‘s#prefix=.*#prefix= /usr/local/lua-5.1.4/#g‘ /usr/local/lua-5.1.4/lib/pkgconfig/lua.pc
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/glib/lib/pkgconfig/:/usr/local/lua-5.1.4/lib/pkgconfig

? 安装mysql-proxy

http://mirrors.sohu.com/mysql/MySQL-Proxy/

源码安装
wget http://launchpad.net/mysql-proxy/0.8/0.8.0/+download/mysql-proxy-0.8.0.tar.gz
tar -zxvf mysql-proxy-0.8.0.tar.gz
cd mysql-proxy-0.8.0/
./configure --pre --with-lua= /usr/local/lua-5.1.4 --with-mysql= /usr/lib64/mysql/mysql_config
make
make install

验证一下 :
mysql-proxy -V

二进制源码解压安装
cd /usr/local/software
tar -zxvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
mv mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy
useradd mysql-proxy -s /sbin/nologin
chmod -R 775 /usr/local/mysql-proxy
chown -R mysql-proxy. /usr/local/mysql-proxy

? 配置环境变量
vim /etc/profile
LUA_PATH="/usr/local/mysql-proxy/share/doc/mysql-proxy/?.lua"
export LUA_PATH
export PATH=$PATH:/usr/local/mysql-proxy/bin
保存并退出后执行下面命令
source /etc/profile // 使变量立即生效

8.12.1.2 Mysql-proxy配置

修改mysql proxy的读写分离脚本的配置

vim /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
默认最小4个(最大8个)以上的客户端连接才会实现读写分离, 现改为最小1个最大2个,便于读写分离的测试

-- connection pool
if not proxy.global.config.rwsplit then
        proxy.global.config.rwsplit = {
                min_idle_connections = 1,  // 改为1
                max_idle_connections = 2,  // 改为2
                is_debug = false

}
end
这是因为mysql-proxy会检测客户端连接, 当连接没有超过min_idle_connections预设值时,
不会进行读写分离, 即查询操作会发生到Master上.

8.12.1.3 Mysql-proxy 防火墙配置

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4040 -j ACCEPT

8.12.1.4 Mysql 主从授权

grant select,insert,update,delete on . to ‘test‘@‘192.168.1.202‘ identified by ‘321321‘; // 创建登录用户并授权

8.12.1.5 mysql-proxy启动

vim /etc/init.d/mysql-proxy // 新建一个shell文件,加入以下内容
#!/bin/sh
LUA_PATH=/usr/local/mysql-proxy/share/doc/mysql-proxy/?.lua:/usr/local/mysql-proxy/lib/mysql-proxy/lua/?.lua
mode=$1
if [ -z "$mode" ] ; then
mode="start"
fi

case $mode in
‘start‘)
mysql-proxy --daemon \
--log-level=debug \
--user=mysql-proxy \
--keepalive \
--log-file=/var/log/mysql-proxy.log \
--plugins="proxy" \
--proxy-backend-addresses=10.204.3.9:3306 \
--proxy-read-only-backend-addresses=10.204.3.10:3306 \
--proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua \
--plugins="admin" \
--admin-username="admin" \
--admin-password="admin" \
--admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua" ;;

‘stop‘)
killall mysql-proxy
;;

‘restart‘)
if $0 stop ; then
$0 start
else
echo "retart failed!!!"
exit 1
fi
;;
esac
exit 0

保存并退出
chmod 775 /etc/init.d/mysql-proxy // 授予执行权限
./mysql-proxy.sh // 启动mysql-proxy

配置参数详解
--daemon 采用daemon方式启动
--admin-address=:4401 指定mysql proxy的管理端口,不加参数,默认4041
--proxy-address=:3307 指定mysql proxy的监听端口,不加默认4040 也可以用 127.0.0.1:3307 表示
--proxy-backend-addresses=192.168.1.3:3306 指定master 写的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脚本,用于读写分离
--keepalive :在mysql-proxy崩溃时尝试重启之;
--plugins=plugin:在mysql-proxy启动时加载的插件;
--user=user_name :运行mysql-proxy进程的用户;
--defaults-file=/path/to/conf_file_name : 默认使用的配置文件路径;其配置段使用[mysql-proxy]标识;
--proxy-skip-profiling : 禁用profile;
--pid-file=/path/to/pid_file_name :进程文件名;

--plugins=proxy -b 192.168.1.219:3306 -r 192.168.1.177:3306

8.12.1.6 mysql-proxy日志

监控启动日志

tail -f /var/log/mysql-proxy.log

8.12.1.7 mysql-proxy测试连接
mysql -uadmin -padmin -h 10.204.3.8 -P4040 # 管理模式,用于查询状态
mysql -uadmin -padmin -h 10.204.3.8 -P4041 # 监听模式,用于连接操作

默认只能以下操作
mysql> show databases;
ERROR 1105 (07000): use ‘SELECT * FROM help‘ to see the supported commands

mysql> select * from backends;
+-------------+------------------+---------+------+------+-------------------+
| backend_ndx | address | state | type | uuid | connected_clients |
+-------------+------------------+---------+------+------+-------------------+
| 1 | 10.204.3.9:3306 | unknown | rw | NULL | 0 |
| 2 | 10.204.3.10:3306 | unknown | ro | NULL | 0 |
+-------------+------------------+---------+------+------+-------------------+
2 rows in set (0.00 sec)
注:因为rw-splitting.lua脚本默认有4个链接才启用分离;所以多开启几个终端;多测试几下;你也可以去修改里面的相关值;

8.12.1.8 mysql-proxy压力测试
用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

8.12.1.9 Mysql-proxy报错

gcc -O2 -fPIC -Wall -DLUA_USE_LINUX -c -o lua.o lua.c
在包含自 lua.h:16 的文件中,
从 lua.c:15:
luaconf.h:275:31: 错误:readline/readline.h:没有那个文件或目录
luaconf.h:276:30: 错误:readline/history.h:没有那个文件或目录

解决方法:yum install -y readline-devel

checking for LUA... no
checking for LUA... configure: error: Package requirements (lua5.1 >= 5.1) were not met:
No package ‘lua5.1‘ found

解决方法:vi /etc/profile
export LUA_CFLAGS="-I /usr/local/lua-5.1.4/include/"
export LUA_LIBS="-L /usr/local/lua-5.1.4/lib/ -llua -ldl"

checking for event_init in -levent... no
configure: error: libevent is required

解决方法:yum install libevent-devel

原文地址:http://blog.51cto.com/zhongliang/2152918

时间: 2024-11-07 00:25:38

Mysql Proxy的安装配置详细教程的相关文章

Mysql教程:[1]下载安装配置详细教程

如果不小心你下载了免安装的mysql,那么你比较倒霉,你找不到setup文件,还得自己去配置很多东西,然后再使用命令安装.所以我今天呢写一篇教程,写的尽量详细,即便是菜鸟也能安装,我自己安装过很多遍了,方法没问题,下面看具体的教程: 通过搜索找到mysql的官方,然后在官网找到下载页面,注意别下载错了,我们仔细看 在这里,我们找到这个installer ,点击进入 然后,我们看页面最下面,不管是64位还是32位,都是下载这个安装文件 下载下来以后,我们就可以看到这个界面,安装过程很简单,现在就是

vsftpd 安装配置详细教程

linux下ftp软件不少,大致特点:<br /> wu-ftp:比较老牌,但针对它的攻击比较多,设置比较麻烦,但功能比较强大.<br /> vsftpd:功能强大,配置也比较简单 linux下ftp软件不少,大致特点:wu-ftp:比较老牌,但针对它的攻击比较多,设置比较麻烦,但功能比较强大.ProFTPD:能实现wu-ftp以及server-U的所有功能.安全性也较高,但比起vsftpd配置稍显复杂.vsftpd:功能强大,配置也比较简单 选vsftpd是因为它安全.速度快.选

MySQL压缩版安装配置教程

MySQL压缩版安装配置教程 1.下载 在官网下载压缩包(这里我下载的是第二个) 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 2.安装与配置 1.将压缩包解压到任意目录 2.如上图,在该目录下创建一个data空文件夹,再建一个my.ini的配置文件,在该文件中写入以下代码: 注意:以下代码的注释是必须删除的,也就是#号及其后面的中文必须都删掉,还有就是下面的basedir和datadir要改成自己相应的目录 [mys

Win10系统下MySQL压缩版安装配置教程

MySQL分为安装版和压缩.为了以后MySQL出问题想重装时的各种不必要的麻烦,我个人推荐压缩版MySQL.下面进入教程: 进入官网下载MySQL压缩包,并解压如下 配置环境变量---将bin文件的目录加入电脑系统环境配置path下 新建my.ini配置文件(安装目录和数据库存放目录根据自己的目录编辑) [mysql] default-character-set = utf8 [mysqld] #端口 port = 3306 #mysql安装目录 basedir = E:/mysql-8.0.1

webpack安装配置使用教程详解

webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对于不喜欢使用 jspm测试的朋友可以参考一下. webpack 入门 目录 1 安装 webpack2 初始化项目3 webpack 配置4 自动刷新5 第三方库6 模块化7 打包.构建8 webpack 模板我最近大量使用的是 jspm,但因为用它搭建的前端开发环境中,写测试代码非常困难,而项目又

QTP11.00安装+破解详细教程

一.      安装过程 首先双击setup.exe文件,选择“QuickTest Professional安装程序” 此时会查看你机子上面是否有QTP需要,但是机子上没有的组件, 跟着先安装这两个组件 首先安装“Microsoft vlisual C++ 2005 SP1运行时组件”可以尝试以下方法: 可以在安装包的子目录“quicktest-professional-11(1)\RunResultsViewer\CHS\prerequisites\vc2005_sp1_redist” 找到“

【Oracle RAC】Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂)

2 Oracle11gR2 RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件下载3 Oracle11gR2 RAC数据库安装环境配置3.1 安装主机或虚拟机3.2 安装操作系统3.3 hosts文件配置3.4 添加组与用户3.5 添加文件系统3.6 修改操作系统参数3.7 禁止NTP3.8 配置grid和oracle用户的环境变量3.9 配置SSH信任关系3.10 调整页面交换空间3.11 配置磁盘4 安装11gR2 Grid Infrastructure组件4.1 解压安装文

【Oracle RAC】Linux系统Oracle12c RAC安装配置详细记录过程V2.0(图文并茂)

[Oracle RAC]Linux系统Oracle12c RAC安装配置详细过程V2.0(图文并茂) 2 Oracle12c RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件下载3 Oracle12c RAC数据库安装环境配置3.1 安装主机或虚拟机3.2 安装操作系统3.3 hosts文件配置3.4 添加组与用户3.5 添加文件系统3.6 修改操作系统参数3.7 禁止NTP3.8 配置grid和oracle用户的环境变量3.9 配置SSH信任关系3.10 调整页面交换空间3.

MySQL多实例安装配置

MySQL多实例安装配置 一.基本概念 MySQL多实例就是,在一台机器上开启多个不同的服务端口(如:3306,3307,3308...),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的端口提供服务. MySQL可以共用一套安全程序,使用不同的my.cnf配置文件,启动程序,数据文件. 逻辑上是独立的,但是一个实例过载过高的时候会对其他造成影响. MySQL多实例的作用与问题: 1.有效利用服务器资源 2.节约服务器资源 3.资源互相抢占问题 当某个服务实现并发生很高的