MYSQL主从复制与读写分离(MariaDB)

MYSQL主:192.168.26.210(centos6.6,Mariadb10)

MYSQL从:192.168.26.211(centos6.6,Mariadb10)

读写分离器mysql-proxy:192.168.26.212

主:mysql配置文件编辑:

 vim /etc/my.cnf.d/server.cnf

wKioL1hkZcuxBx87AAAG8lxYgW4066.png-wh_50

配置文件中加入以下两项:

log-bin=mysql-bin

server-id       = 210

wKioL1hkZjPxwZafAAAdEF2HK6A084.png-wh_50

从:mysql配置文件编辑:

 vim /etc/my.cnf.d/server.cnf

wKiom1hkZk3CvrYEAAAPHEMvtlk255.png-wh_50

配置文件中加入以下两项:

wKioL1hkZmvAHEkLAAAq59S8d8Q145.png-wh_50

读写分离调度器:mysql-proxy(0.8.5版本)

wKiom1hkZpegZle1AAAsJCx0MtQ592.png-wh_50

直接YUM安装:yum list  msyql-proxy

wKioL1hkZrvSW3bJAAAScaV8v6c995.png-wh_50

mysql-proxy安装完成后编辑配置文件:vim /etc/mysql-proxy

[mysql-proxy]

daemon = true

pid-file = /var/run/mysql-proxy.pid

log-file = /var/log/mysql-proxy.log

log-level = debug

max-open-files = 1024

plugins = admin,proxy

user = mysql-proxy

#

#Proxy Configuration

proxy-address = 0.0.0.0:3306    #分离器地址默认本是4040,若本机安装了MYSQL则改用其它端口

proxy-backend-addresses =192.168.26.210:3306       #可读写服务器地址

proxy-read-only-backend-addresses = 192.168.26.211:3306  #只读服务器地址列表,多台服务器用,分隔

proxy-lua-script = /usr/share/doc/mysql-proxy-0.8.5/examples/rw-splitting.lua     #指定读写分离脚本路径位置

proxy-skip-profiling = true

#

# Admin Configuration

admin-address = 0.0.0.0:4041  #管理地址

admin-lua-script = /usr/lib64/mysql-proxy/lua/admin.lua   #mysql-proxy不对用户做身份验证,而是下身份验证交予后端服务器进行验证的,因此需要在后端服务器上对mysql-proxy开放权限

admin-username = admin #管理账号

admin-password = admin  #管理密码

wKiom1hkZu6gWubAAABlFl6f45Q698.png-wh_50

保存退出,记得加入开机服务启动项:chkconfig mysql-proxy on

wKiom1hkZx2RXW82AAAQBhaU1ek491.png-wh_50

说明下:YUM安装后lua脚本路径: /usr/share/doc/mysql-proxy-0.8.5/examples/rw-splitting.lua 

wKioL1hkZ6aC3ee4AABjk_3ax-c083.png-wh_50

 admin.lua脚本路径: /usr/lib64/mysql-proxy/lua/admin.lua 

wKioL1hkZ-qC0dmCAAAzKo-NCmw253.png-wh_50

启动服务:service mysql-proxy start

用管理账号登陆mysql-proxy

mysql -uadmin -padmin -h192.168.26.212 --port=4041


wKiom1hkaAzAxBrdAABUl9vGZ08463.png-wh_50

执行命令查看:SELECT * FROM backends;

两台服务器主和从都已经添加进mysql-proxy,主服务器rw表示可读写,ro表示只读。

wKiom1hkaGiQqfNQAABY7O8B6U4261.png-wh_50

再回到主服务器:192.168.26.210创建一个访问账号和密码,供测试使用。

grant all on *.* to 'bdadmin'@'192.168.%.%' IDENTIFIED BY 'jerrypass';

wKioL1hkboygdIkPAAA_2d3FvoU819.png-wh_50

为了测试效果可以用tcpdump进行抓包观察效果:

wKioL1hkbquTYIUoAAB_NuvZB24806.png-wh_50

任一找一台同网络中的主机登陆mysql服务器(210,211,212都可以,注意登陆时端口号,这里我是我手动

改为3306了的):


wKiom1hkbuTg3KrrAAAXit09Vzs701.png-wh_50

执行创建数据库操作:

create database bdtest;

wKioL1hkbvzTYpEWAABAkkuWDvI275.png-wh_50
观察状态:

wKiom1hkbyaTQTuiAABq7uR9Plg126.png-wh_50

1 台主多台从配置:

[mysql-proxy]

daemon = true

pid-file = /var/run/mysql-proxy.pid

log-file = /var/log/mysql-proxy.log

log-level = debug

max-open-files = 1024

plugins = admin,proxy

user = mysql-proxy

#

#Proxy Configuration

proxy-address = 0.0.0.0:3306

proxy-backend-addresses = 192.168.26.210:3306

proxy-read-only-backend-addresses = 192.168.26.211:3306,192.168.26.212:3306

proxy-lua-script = /usr/share/doc/mysql-proxy-0.8.5/examples/rw-splitting.lua

#proxy-skip-profiling = true

#

# Admin Configuration

#admin-address = 0.0.0.0:4041

admin-lua-script = /usr/lib64/mysql-proxy/lua/admin.lua

admin-username = admin

admin-password = admin

wKioL1hkb0Cj7K_WAABtOefdyJA668.png-wh_50

wKiom1hkb1zQH9deAABmvCBelhw967.png-wh_50wKioL1hkb2HAVeLJAAAp9enz2iQ084.png-wh_50

特别提示,测试中需要多执行几次查询(因为操作要受连接数限制)操作,才能更好的观察效果。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://blog.51cto.com/jdonghong/1887164

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。