mysql主从复制安装配置

本文档详细介绍了在CentOS7环境下,如何配置MySQL 5.7的主从复制,包括基础设置、授权、配置从服务器以及查看复制状态。在主从复制配置完成后,讨论了数据不一致问题,并引入了读写分离的概念,为解决该问题提供了方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、基础设置准备

#操作系统:
centos 7
#mysql版本:
5.7
#两台虚拟机:
node1:192.168.245.71(主)
node2:192.168.245.72(从)
systemctl start mysqld.service

2、安装mysql数据库

#详细安装和卸载的步骤参考对应的文档

3、在主(node1)服务器进行如下配置:

#修改配置文件,执行以下命令打开mysql配置文件
vi /etc/my.cnf
#在mysqld模块中添加如下配置信息
log-bin=master-bin #二进制文件名称
binlog-format=ROW  #二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。mixed指的是默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
server-id=1		   #要求各个服务器的id必须不一样

4、配置从服务器登录主服务器的账号授权

--授权操作
set global validate_password_policy=0;
#从服务器链接的时候用什么来连接,账号密码
grant replication slave on *.* to 'root'@'%' identified by '12345678';
--刷新权限
flush privileges;

5、从服务器的配置

#修改配置文件,执行以下命令打开mysql配置文件
vi /etc/my.cnf
#在mysqld模块中添加如下配置信息
log-bin=master-bin	#二进制文件的名称
binlog-format=ROW	#二进制文件的格式
server-id=2			#服务器的id

6、重启主服务器的mysqld服务

#重启mysql服务
service mysqld restart
#登录mysql数据库
mysql -uroot -p
#查看master的状态
show master status;

注:重启mysql服务需要退出mysql状态exit

登录成功后查看master状态

  

7、重启从服务器并进行相关配置

#重启mysql服务
service mysqld restart
#登录mysql
mysql -uroot -p
#连接主服务器
change master to change master to master_host='192.168.245.71',master_user='root',master_password='12345678',master_port=3306,master_log_file='master-bin.000001',master_log_pos=154;
#启动slave
start slave
#查看slave的状态
show slave status\G(注意没有分号)

8、此时可以在本地进行测试一下,链接linux上的

可以链接成功,我们可以在主库加一个数据库或者表,看一下从库是否跟着改变 ,在主库里新加了一个test数据库,在从库右键刷新发现也跟着多了一个数据库

 我们继续添加表,结果也是如此,但是我们添加数据的时候,主库和从库都会添加数据,如果从库先添加了表数据,结果主库也添加了数据,她俩的id位置一样但是内容不一样。这样从库在复制的时候就会导致数据不一致,这条数据时从库添加的那条信息,这样的话结果对于我们来说非常的不友好,并不是我们想要的结果,那我们应该怎么解决这个问题呢?

这就需要我们进行读写分离了,具体怎么读写分离法呢,等我具体的学习完再写一篇介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值