mysql proxy代理安装和配置

服务器说明:

192.168.1.219   mysql主库(主从复制)

192.168.1.177   mysql从库(主从复制)

192.168.1.202   mysql proxy代理(实现读写分离)

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

安装lua(确定是否需要安装)

yum -y install gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmc rypt* libtool* flex*

pkgconfig*

Mysql Proxy的安装

下载mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz

注:若是你安装的软件包是已编译的,则无需安装lua

a、解压安装

cd /usr/local/software

tar -zxvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz

cp mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy

b、授权

chmod -R 775 /usr/local/mysql-proxy

chown -R mysql:mysql /usr/local/mysql-proxy

c、环境变量的设置

vim /etc/profile   //打开此文件,在文件尾部加上以下内容

LUA_PATH="/usr/local/mysql-proxy/share/doc/mysql-proxy/?.lua"    // lua环境变量的设置

export LUA_PATH

export PATH=$PATH:/usr/local/mysql-proxy/bin     //mysql proxy 环境变量的设置

保存并退出后执行下面命令

source /etc/profile  // 使变量立即生效

d、修改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上.

e、开启防火墙端口设置

vim /etc/sysconfig/iptables    //打开防火墙配置文件,加入以下内容

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

注:mysql-proxy的服务端口默认为4040

f、主库和从库给代理服务器创建登录用户并授权

登录主库192.168.1.219,给主机192.168.1.202创建登录用户并授权

ssh root@192.168.1.219  // 登录主数据库服务器

mysql -uroot -p321321   // 连接mysql数据库

mysql>grant all on *.* to 'test'@'192.168.1.202' identified by '321321';  // 创建登录用户并授权

mysql>flush privileges;   // 刷新MySQL的系统权限相关表

登录从库192.168.1.177,给主机192.168.1.202创建登录用户并授权,操作步骤和主库一样,

注意:主库和从库给代理服务器创建登录用户并密码应该一致

g、启动mysql-proxy

vim /usr/local/mysql-proxy/mysql-proxy.sh   // 新建一个shell文件,加入以下内容

#!/bin/sh

mysql-proxy --daemon --log-level=debug --log-file=/var/log/mysql-proxy.log

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

--proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin

--admin-username="test" --admin-password="321321"

--admin-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua"

保存并退出

chmod 775 /usr/local/mysql-proxy/mysql-proxy.sh  // 授予执行权限

./mysql-proxy.sh   // 启动mysql-proxy

查看mysql-proxy服务端口

netstat -tupln |grep mysql

监控启动日志

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

测试mysql proxy读写分离

在读写分离测试时,需要开启多个客户端窗口连接mysql-proxy

a、打开主库的mysql 日志

tail -f /usr/local/mysql/my.log

b、打开从库的mysql 日志

tail -f /usr/local/mysql/my.log

c、开启多个客户端窗口连接mysql-proxy

mysql -h192.168.1.202 -P4040 -utest -p321321

插入数据   查询数据进行测试

mysql proxy代理安装和配置的更多相关文章

  1. mysql.zip免安装版配置

    MYSQL ZIP免安装版配置 1. 下载MySQL 选择自己想要的.本次安装.我使用的是mysql-5.6.17-winx64  地址:http://dev.mysql.com/downloads/ ...

  2. mysql数据库的安装与配置

    mysql数据库的安装与配置及workbench的简单使用 mysql数据库社区版下载:https://dev.mysql.com/downloads/installer/ 我这里选的是社区安装版(适 ...

  3. MySQL服务器的安装和配置,MySQL Workbench 8.0.12安装,MySQL的基本使用

    一 MySQL服务器的安装和配置 二 MySQL Workbench 8.0.12安装 三 MySQL的基本使用 一MySQL服务器的安装和配置 MySQL是目前最为流行的开放源码的数据库,是完全网络 ...

  4. linux学习之centos(三):mysql数据库的安装和配置

    前言:mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库, ...

  5. linux应用之mysql数据库的安装及配置(centos)

    CentOS下Mysql数据库的安装与配置   如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲 ...

  6. MySQL数据库的安装与配置(windows)

    MySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司开发,目前属于Oracle公司.任何人都能从Internet下载MySQL软件,而无需支 ...

  7. MySQL集群安装与配置

    MySQL集群安装与配置   文章目录 [隐藏] 一.mysql集群安装 二.节点配置 三.首次启动节点 四.测试服务是否正常 五.安全关闭和重启 MySQL Cluster 是 MySQL 适合于分 ...

  8. Windows下MySQL 5.6安装及配置详细图解

    一.安装前的准备 1.下载安装程序包,可到MySQL官方网站http://www.mysql.com/下载,如图1-1: 图1-1 下载后的安装文件如图1-2所示: 图1-2 二.安装 1.双击下载的 ...

  9. 第一章 Mysql 简介及安装和配置

    Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. ...

随机推荐

  1. SQL语句(十八_补充)——存储过程

    一. 变量 1. 形式: @x (局部), @@x(全局) 2. 定义: declare @x 3. 赋值:Set @x = ? 4. 作用: 通用化 存储在服务器 5. 存储过程(预编译过的T-SQ ...

  2. IE6 下 DD_belatedPNG 引发的血案

    群里一朋友Q我,说遇到兼容性问题了,我说为何不用jQuery呢(因为他们公司要求尽量js写).他说用了,还是有问题,IE6下不行,其他都行.然后他发我代码,我一开始真以为是兼容性问题,比如数组对象最后 ...

  3. 腾讯高级设计师谈微信的旧容与新妆,Android Design是大势所趋

    编者按:本篇投稿选自腾讯大讲堂(更多腾讯产品技术文章,可以关注“腾讯大讲堂”微信公众账号),由腾讯研发管理部高级设计师Vertu撰写,他以产品设计师的视角,对比解读了微信的旧容与新妆,也讲了Andro ...

  4. Linux基础-简单的进程操作

    任务:查找一个名为firewall的进程,并且将其强制杀死 首先要使用ps -aux来查询firewall的进程ID(|grep firewall) 这样我们就得到了firewall的进程ID是653 ...

  5. Linux操作系统介绍

    1Linux操作系统介绍 1.1linux系统的应用 服务器系统:Web应用服务器.数据库服务器.接口服务器.DNS.FTP等等: 嵌入式系统:路由器.防火墙.手机.PDA.IP 分享器.交换器.家电 ...

  6. tomcat集群及session共享

    一般来说,java web app主要用作两个领域: 1.api.api一般是无状态的,所以无需考虑session共享的问题 2.传统web应用和网站,如crm,oa,erp,b2c,bbs等.尤其b ...

  7. dockerfile创建镜像及容器

    第一步: 从王总git上:http://git.oursdata.com/wangyue/dockerfiles.git 进入下图的文件夹中 然后执行以下的说明执行步骤   第二步: 开发环境dock ...

  8. 关于注入抽象类报could not autowire field的问题

    昨天工作中遇到了一个很奇葩的问题,之前一直都没考虑过抽象类这块,一直用的注入接口实现类: 先看下错误: 因为在类中注入了一个抽象类,之前只有一个继承子类,所以没问题,这里要说一下抽象类的实例化: 抽象 ...

  9. 【比赛游记】THUWC2019酱油记

    往期回顾:THUSC2018酱油记 day 0 早上 7 点的动车,不知道是从哪儿到哪儿的(雾),只知道从福建到广东 233333 一个值得思考的问题:福建人会不会被广东人吃啊? 动车上玩空洞骑士,可 ...

  10. asp.net 伪静态实现(UrlRewritingNet)

    UrlRewritingNet.UrlRewriter源码地址 https://github.com/aspnetde/UrlRewritingNet部署步骤: 步骤一: <!--只允许存在一个 ...