高性能之---MySQL主从复制

今天我们要搭建的架构是一主多从,一个master,多个Slave。

 首先Liunx安装mysql, 不会的请看博文 MySQL安装

多的就不说了,直接进入正题。

1. 配置 master 节点

    cd /etc/mysql/mysql.conf.d

   vim mysqld.cnf 

   添加下面配置

#配置需要同步的数据库
binlog-do-db=shupf
#配置不需要同步的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
server-id=1 //表示是主节点
log-bin=mysql-bin

保存退出,

重启mysql服务: service mysql restart

连接mysql: mysql -uroot -p你的密码

输入:show master status;

出现如图所以就表示配置成功

1表示:binlog日志,里面会记录update,alter,delete语句,不会记录select语句,从节点会监听这个binlog文件,然后读取里面的               语句,从而来达到数据的同步

 

2. 在另一台机器安装Slaver mysql数据库

vim /etc/my.cnf

添加如下配置

server-id=2 #从节点,多个依次增加
log-bin=mysql-slave-bin
replicate-do-db=shupf #需要同步的数据库

#不需要同步的数据库
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys

重启mysql, systemctl restart mysqld.service

进入msyql: mysql -uroot -p

配置连接master服务器: change  master to master_host='master host', master_user='root', master_password='密码'

启动slave节点:start slave;

查看状态:show slave status \G;mysql 

标识配置成功;

测试一下数据同步,

 

在三个连接中创建好需要同步的数据库:向master中创建一个表t_user,插入数据,然后刷新其他两个连接的数据库是否正常通过过去,至此,数据同步完成,接下了还有就是实现读写分离。

3. 读写分离,运用Atlas来实现

wget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm

rpm -ivh Atlas-2.2.1.el6.x86_64.rpm

配置Atlas

cd /usr/local/mysql-proxy/conf/

修改配置 test.cnf

 

加密密码

划线部分主要是需要配置的

运行atlas成功

用navcat 连接atlas

 host为master主机地址,用户名和密码都是,唯一是端口是1234

,测试连接

 

如果你们报错10060,需要检查两个地方

第一,开放阿里云端口,如果开放后还是不行,第二,开放防火墙1234端口

开放防火墙端口:

查询端口号 1234 是否开启:firewall-cmd --query-port=1234/tcp

如果显示no,表示没开放,yes表示开放

开放1234端口:firewall-cmd --zone=public --add-port=1234/tcp --permanent
重启防火墙:firewall-cmd --reload

查询端口号 1234 是否开启:firewall-cmd --query-port=1234/tcp

显示yes表示成功开放,

再去连接navcat就好了

此时我们就来测试一下读写分离,这里我先说明一下,由于atlas在CentOS安装比较顺利,所有后面我就把78服务器改为了master, 231和214服务器改为了slave节点

我们先打开日志:

cd /usr/local/mysql-proxy/log

实时查看sql_test.log文件

tail -f  tail -f sql_test.log

进入刚刚连接的atlas连接的mysql, 执行查询t_user表2次看看结果

 从这里我们可以看出,查询语句只走了slave节点231和214,如果我们非要从master节点查询,可以在查询语句前面加上/*MASTER*/

 此时就走了master节点,至此大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值