mysql主从复制(主-从-从)


一、前期环境准备

前期需要准备三台主机
在这里插入图片描述

二、主库配置

1.设置server-id值并开启binlog参数

vim /etc/my.cnf 去这个配置文件下,
[mysqld]
log_bin=mysql-bin
server_id = 11

server_id 要与从库不一样
改完配置文件后需要重启数据库

systemctl restart mysqld

2.建立同步账户并给上权限

grant replication slave on *.* to 'rep'@'192.168.45.%' identified by 'redhat';

查看账户的权限

show grants for 'rep'@'192.168.45.%';

3.查看主库状态

show master status;

在这里插入图片描述
可以看见当前日志名和偏移量

4.锁表设置只读

为后面备份准备,注意生产环境要提前申请停机时间;

flush tables with read lock;

如果超过设置时间不操作会自动解锁

 show variables like '%timeout%';

在这里插入图片描述测试锁表后是否可以创建数据库

5.备份数据库数据

我这里使用mydb3数据库
在这里插入图片描述备份该数据库

mysqldump -uroot -predhat  -B mydb3 > my.sql

然后将该数据库传给两个从库

scp my.sql 192.168.45.142:/opt/

去两个从库查看是否有该文件
在这里插入图片描述
最后进行解锁

unlock tables;

三、从库配置

1.设置server-id值并开启binlog参数

在这里插入图片描述
注意server_id不能一样,这里将它设置成12
设置完配置文件之后需要重启mysql

2.还原从主库备份数据

mysql -uroot -p < /opt/my.sql

两个从库都做一样的配置
然后去查看还原的数据库

在这里插入图片描述

3.设定从主库同步

在从库的mysql上

change master to
   -> master_host='192.168.45.140',
   -> master_port=3306,
   -> master_user='rep',
   -> master_password='redhat',
   -> master_log_file='mysql-bin-000011',
   -> master_log_pos=439;

show master status;
#去查看日志名

4.启动从库同步开关

mysql> start slave;
#检查状态:
mysql> show slave status\G

这里要注意的时,因为我使用的时克隆机器,因此三台机器的uuid都是一样的,会出现报错,因此需要去修改uuid
如果您的三台主机不是克隆的可一忽略这个问题

#去这个配置文件下进行修改
vim /var/lib/mysql/auto.cnf 

[auto]
server-uuid=816b68b8-1ad6-11ee-9ffb-000c29f9526b

改完配置文件记得重启数据库

然后去查看从库状态
在这里插入图片描述
当Slave_IO_Running和Slave_SQL_Running参数都为yes时,说明配置成功

四.测试

1.在主库上创建数据库

然后去从库上查看

在这里插入图片描述

2.在主库上删除数据库

在这里插入图片描述
测试成功,主从复制没有问题。

总结

在大家进行主从复制的时候,如果遇到Slave_IO_Running和Slave_SQL_Running参数有no时,大致有一下几种情况
1.server-id可能一样
2.server-uuid可能一样
3.主库的密码不一样
所有大家在进行配置时,一定要细心,防止出错。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值