码迷,mamicode.com
首页 > 数据库 > 详细

Mysql主从复制和读写分离

时间:2018-05-14 11:08:14      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:Mysql   主从复制   读写分离   Mysql优化   张晨   

实验拓扑:
技术分享图片
地址分配:
Client 192.168.1.1
Amoeba 192.168.1.2
Mysql-Master 192.168.1.3
Mysql-slave1 192.168.1.4
Mysql-slave2 192.168.1.5
1、配置时间同步
1)在Master上使用yum安装ntp,修改其配置文件/etc/ntp.conf后启动服务。为udp端口123开启iptables例外。
2)在两台slave上执行/usr/sbin/ntpdate 192.168.1.3使得时间同步与Master同步。
2、主从复制
注意:三台Mysql数据库上都需要开启tcp端口3306的iptables例外。
1)主服务器Master的配置
/etc/my.cnf的配置
技术分享图片
重启mysqld服务
技术分享图片
执行mysql -u root -p登录到mysql数据库,为服务器授权
技术分享图片
2)从服务器slave的配置(两台从服务器配置相同)
/etc/my.cnf的配置
技术分享图片
重启服务(service mysqld restart),登陆mysql配置启动slave
技术分享图片
通过show slave status\G可以查看主从复制运行是否正常。主从复制依赖于SQL进程和IO进程,这两个进程状态为“yes”即表示运行正常。
技术分享图片
3、读写分离
Mysql读写分离可以通过两种方式实现,基于程序代码内部实现和基于中间件实现,本次使用Amoeba就是基于中间件实现的其中一个方法。
1)Amoeba中间件服务器的配置
安装jdk
技术分享图片
修改/etc/profile
技术分享图片
执行source /etc/profile立即生效,java -version查看是否完成安装。
技术分享图片
安装Amoeba
技术分享图片
修改Amoeba配置文件/usr/local/amoeba/conf/amoeba.xml
技术分享图片
技术分享图片
修改Amoeba配置文件/usr/local/amoeba/conf/dbServers.xml
技术分享图片
技术分享图片
技术分享图片
启动Amoeba,查看端口
技术分享图片
所以Amoeba中间件需要开启tcp端口8066iptables例外。
2)三台Mysql都需要给Aomeba授权(三台相同操作)
技术分享图片
4、客户端连接Amoeba。(正常应当在命令后加-P8066,我后来将端口修改为3306了,就不用在后面加端口号了)
技术分享图片
注意:横线处输入密码为‘amoeba’的密码‘123456b’,而命令中密码为‘chen’的密码‘123456c’。
总结,最后的效果是:
1)在slave上登陆本地mysql写数据,不会同步到master;而在master上写数据,可以同步到slave。
2)关闭主从复制,在client上写数据,可以在master上看到该数据,slave上看不到(因为client写数据会直接写到master上)。
3)关闭主从复制后,在master上登陆本地的mysql写数据,client读取不到数据;相反在slave上登陆本地写数据,client可以读取到(因为client读数据是从slave上读取的)。

Mysql主从复制和读写分离

标签:Mysql   主从复制   读写分离   Mysql优化   张晨   

原文地址:http://blog.51cto.com/13434336/2115983

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!