Linux LAP+MySQL主从+Mysql-proxy读写分离 79-20

DAY-20j笔记
1.1 LAP+MySQL主从+MySQL_proxy架构部署
MYSQL读写分离的原理其实就是让Master数据库处理事务性增、删除、修改、更新操作(CREATE、INSERT、UPDATE、DELETE),而让Slave数据库处理SELECT操作,MYSQL读写分离前提是基于MYSQL主从复制,这样可以保证在Master上修改数据,Slave同步之后,WEB应用可以读取到Slave端的数据。
MySQL_proxy要做的就是介入各个协议的过程,proxy以服务器的身份接收客户端请求,对请求进行分析,分析客户端SQL请求是需要读取(查询)还是写入(增加、删除、更新),然后将分析出的请求进行转发。增加、删除、更新等操作转发给master服务器,查询转发给slave服务器。
Mysql-Proxy允许用户指定Lua脚本对SQL请求进行拦截,对请求进行分析与修改,还允许用户指定Lua脚本对服务器的返回结果进行修改,加入一些结果集或者去除一些结果集,对SQL的请求通常为读请求、写请求,基于Lua脚本,可以实现将SQL读请求转发至后端Slave服务器,将SQL写请求转发至后端Master服务器。
1.1.1 构建MySQL主从服务器
yum安装配置主从服务
主服务器配置参数
在这里插入图片描述
主库配置命令
在这里插入图片描述从库配置参数
在这里插入图片描述从库配置命令
在这里插入图片描述
1.1.2 构建MySQL-proxy代理服务器
(1)下载MYSQL-Proxy软件版本,解压并重命名至/usr/local/mysql-proxy,命令如下:
wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz
useradd -r mysql-proxy
tar zxvf mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz -C /usr/local
mv /usr/local/mysql-proxy-0.8.4-linux-el6-x86-64bit /usr/local/mysql-proxy
在这里插入图片描述(2)环境变量配置文件/etc/profile中加入如下代码保存退出,然后执行source /etc/profile使环境变量配置生效即可:
export PATH=$PATH:/usr/local/mysql-proxy/bin/
source /etc/profile

(3)启动MYSQL-Proxy中间件,命令如下:
mysql-proxy --daemon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins=“proxy” --proxy-backend-addresses=“192.168.50.130:3306” --proxy-read-only-backend-addresses=“192.168.50.131: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"

(4)Mysql-Proxy的相关参数详解如下:
–help-all :获取全部帮助信息;
–proxy-address=host:port :代理服务监听的地址和端口,默认为4040;
–admin-address=host:port :管理模块监听的地址和端口,默认为4041;
–proxy-backend-addresses=host:port :后端主mysql服务器的地址和端口;
–proxy-read-only-backend-addresses=host:port :后端只读mysql服务器的地址和端口;
–proxy-lua-script=file_name :完成mysql代理功能的Lua脚本;
–daemon :以守护进程模式启动mysql-proxy;
–keepalive :在mysql-proxy崩溃时尝试重启之;
–log-file=/path/to/log_file_name :日志文件名称;
–log-level=level :日志级别;
–log-use-syslog :基于syslog记录日志;
–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 :进程文件名;
在这里插入图片描述
Admin用于是管理模块监听的地址和端口,默认为4041;主要的作用就是管理和查询proxy自身的状态以及数据库的状态,本身和其他的数据库没有关系。Mysql –h10.0.0.4(mysql-proxy本机) -uadmin –padmin –P4041
4040为proxy代理端口用于WEB应用连接,是proxy生成的对外的前端端口,也是discuz、wordPross论坛的连接的数据端口,后端将收到客户端的数据在proxy服务器中进行分析命令是读取(查询)还是写入(删除、写入、修改),读取的请求转发给从库的3306端口,写入的请求转发给主库的3306端口。

–plugins=admin --admin-username=admin --admin-password=admin --admin-lua-script=/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua
建立一个管理mysql-proxy平台的用户,和其他数据库没有关系。
在这里插入图片描述在这里插入图片描述配置好读写分离的参数,链接MySQL主从库UP状态即为完成。

在这里插入图片描述在这里插入图片描述配置的MySQL_Proxy地址为数据库的前端地址。

在这里插入图片描述
在这里插入图片描述
乱码问题解决:
vim /etc/mysql/my.cnf 。如下修改:
[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值