Linux 关于mysql配置主从复制(为后期使用mycat进行读写分离进行准备)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liboyang71/article/details/80157441

各位同学大家好,由于近期项目用户并发量的增加,应用层通过各种第三方技术以及微服务架构达到了需求,但是瓶颈卡在的数据库上,因此近期学习了关于mysql主从配置以及通过mycat实现读写分离,来解决数据库的瓶颈,今天这篇文章我们主要以实现主从复制为主,来为大家演示如何实现主从复制,好了废话不多说了,直入主题。

1.描述

首先,什么叫做主从复制,即当主数据库进行数据的增删改操作时,从数据库也要进行一个同样的操作,以确保和主数据库的数据保持一致,即主从复制。今天我们来写一个一主一从的示例来实现主从复制。

2.实现

2.1 准备工作

首先我们需要准备两个mysql数据库,版本最好一致,这里我们使用mysql5.6进行演示,主从信息如下
主数据库 58.87.75.119 Linux(Centos7.3)
从数据库 120.79.178.246 Linux(Centos7.3)

2.2 配置描述

其实主从复制的本质思想就是,从数据库使用一个账号密码,通过来监听主数据库的一个二进制文件,当主数据库进行数据变化时,会将变化记录在这个二进制文件中,此时从数据库因为对此文件进行了监听,所以进行了同样的同步操作。


主服务器(58.87.75.119):
1.开启二进制日志
2.配置唯一的server-id
3.获得master二进制日志文件名及位置
从服务器(120.79.178.246):
1. 配置唯一的server-id
2.读取master二进制日志
3.启用slave服务

2.3 配置数据库

一、主服务器master修改(58.87.75.119)

#找到my.cnf文件
find / -name my.cnf
#进入vim视图模式
vi /etc/my.cnf

在mysqld中添加log-bin=mysql-bin(开启二进制日志),server-id=1(设置server-id),如下图所示
这里写图片描述

master mysql配置完毕,我们来登录master mysql查看我们具体的二进制文件名和位置

#重启mysql
service mysqld restart
#连接mysql
mysql -u root -p 密码
#输入mysql命令进行master状态查看(如下图所示)
SHOW MASTER STATUS;

二进制文件名(mysql-bin.000004)和位置(120)
这里写图片描述

二、从数据库slave修改(120.79.178.246)

同样找到my.cnf配置文件,添加server-id

#找到my.cnf文件
find / -name my.cnf
#进入vim视图模式
vi /etc/my.cnf

在mysqld中添加server-id=2(设置server-id),如下图所示
这里写图片描述

slave mysql配置完毕,我们来登录slave mysql进行与master mysql 的关联

#重启mysql
service mysqld restart
#连接mysql
mysql -u root -p 密码
#输入mysql命令进行master mysql绑定(如下图所示),MASTER_LOG_FILE为你的二进制文件名(可能不一样),MASTER_LOG_POS为你的位置(可能不一样)
CHANGE MASTER TO
MASTER_HOST='182.92.172.80',
MASTER_USER='root',
MASTER_PASSWORD='你的密码',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=120;
#启动slave同步进程
start slave;
#查看状态(如下图所示,当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。)
show slave status\G;

这里写图片描述

当然我们也可以通过stop slave命令来关闭slave同步或者更换master。

最后我们在主和从数据库中分别手动创建一个同名的库(库不会帮你同步创建),之后你会发现当你在master中创建表或者是在表中插入数据时,我们的slave都会跟着同步进行这些操作,此时你的主从复制就算是大功告成了。

猜你喜欢

转载自blog.csdn.net/liboyang71/article/details/80157441