文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql 基于mysql-proxy实现读写分离

2015-08-29 07:32

关注


	mysql 基于mysql-proxy实现读写分离
[数据库教程]

mysql 读写分离

读写分离首先不推荐使用,很多业务场景也没有必要,不仅增加技术复杂度,而且可能会导致读到落后的数据,建议优化数据库,推荐使用keepalive+mysql双主复制的方案

然后mysql-proxy是官方推出的中间件,不仅无法高可用,而且这个项目已经夭折了,使用mysql-route了,本次仅记录mysql-proxy的安装过程。

mysql-proxy不再支持mysql5.7以后的client客户端登录

一、环境描述

技术图片

系统版本        centos7.8

mysql-proxy    192.168.197.128

主mysql        192.168.197.129

从mysql      192.168.197.130

二、安装mysql主从同步

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison bison-devel
yum -y install mariadb-server mariadb mariadb-libs 

具体主从配置mysql5.7主从复制配置

注意:由于mysql-proxy不再支持 mysql5.7以上的访问mysql访问后端server,故只参考里面的配置文件即可,不用安装mysql5.7

三、安装mysql-proxy

1.登录mysql-proxy

创建proxy系统用户

useradd -r mysql-proxy

mkdir -p /usr/local/mysql-proxy

cd  /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
tar -zxvf mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz
mv mysql-proxy-0.8.4-linux-el6-x86-64bit/* /usr/local/mysql-proxy/

技术图片

2.添加环境变量

echo -e ‘ export PATH=/usr/local/mysql-proxy/bin/:$PATH ‘ >> /etc/profile && 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.197.129:3306" --proxy-read-only-backend-addresses="192.168.197.130: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"

方法二:(推荐)添加配置文件启动

mkdir -p /usr/local/mysql-proxy/conf
mkdir -p /usr/local/mysql-proxy/log
vim /usr/local/mysql-proxy/conf/mysql-proxy.conf

[mysql-proxy]
user=mysql-proxy
admin-username=admin
admin-password=admin

#proxy-address=192.168.197.128:3306
proxy-backend-addresses=192.168.197.129:3306
proxy-read-only-backend-addresses=192.168.197.130:3306

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

pid-file=/usr/local/mysql-proxy/log/mysql-proxy.pid
log-file=/usr/local/mysql-proxy/log/mysql-proxy.log
plugins=admin,proxy
log-level=debug
keepalive=true
daemon=true

chmod 660 /usr/local/mysql-proxy/conf/mysql-proxy.conf

启动

/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf

4.查看端口

netstat -lntp | grep mysql

技术图片

4040 代理监听,web对外接口

4041 管理模块监听,查询proxy自身的状态

5.查看proxy的运行状态

#账号密码由步骤3中的启动代码指定,具体如下
#--plugins=admin --admin-username="admin" --admin-password="admin" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua"

mysql -h 192.168.197.128 -uadmin -padmin -P4041 -e ‘select * from backends;‘

技术图片

提示unknown,所以需要在master与slave数据库添加对proxy进行访问授权

6.登录master与slave 添加远程访问权限

grant all on *.* to [email protected]‘%‘ identified by "Huawei12#$";
flush privileges;

7.proxy使用4040端口登录主从数据库

mysql -h192.168.197.128 -uroot -pHuawei12#$ -P4040 -e ‘show databases;‘

退出数据库,使用admin登录查看proxy状态

mysql -h 192.168.197.128 -uadmin -padmin -P4041 -e ‘select * from backends;‘

通过授权连接后,proxy显示主从up状态

mysql 基于mysql-proxy实现读写分离

原文地址:https://blog.51cto.com/11442747/2513842

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯