mysql主从复制搭建

1、先准备两台虚拟机

若只有一台,可以按照一下文章复制一台出来:

https://jingyan.baidu.com/article/fc07f98928e35053fee51931.html

复制出一台虚拟机后,还需要更改虚拟机的默认ip,改法参考如下:

VMWare虚拟机设置固定ip_vm虚拟机网络ip地址怎么修改-CSDN博客

2、修改主机mysql的配置

由于主从复制是基于二进制日志,所以mysql的master节点需要开启二进制日志:

vim /etc/my.cof

添加如下两行

log-bin=mysql-bin #启 动 二 进 制 日 志

server-id=100 #服 务 器 唯 一 标 识 , 必 须 唯 一

保存后执行 systemctl restart mysql3306.service 重启mysql

3、在master创建slave用户并授予权限

grant replication SLAVE ON *.* TO 'xiaoming'@'%' IDENTIFIED BY '123456';

执行sql,查看日志文件名称和位置(做完此操作后就不要再执行其他sql了):

show MASTER STATUS 

4、设置slave服务器id

vim /etc/my.cnf

设置完后重启slave节点

5、在slave节点执行sql,设置master相关信息

CHANGE MASTER TO 
	master_host='192.168.56.201', -- master所在主机ip
	master_user='xiaoming', -- master创建的用户名
	master_password='123456', -- 密码
	master_log_file='binlog.000066', -- master节点二进制日志文件名
	master_log_pos=434; -- master节点二进制文件位置

start slave; -- 启动从节点

 6、slave执行sql,查看salve状态

show slave STATUS

发现salve的io线程没有运行起来

原因:由于salve所在虚拟机是直接克隆出来的,导致主从数据库的uuid相同,解决方法参看如下

https://blog.csdn.net/qq_54217349/article/details/126501053

按照上面文章操作后,发现还是不行,salve的io还是没跑起来,继续排查:

参看文章:

https://zhuanlan.zhihu.com/p/688790850

在salve上执行sql,查看错误日文件的位置,查到日志文件位置后在salve服务器上查看改日志文件

	SHOW VARIABLES LIKE '%log_error%';

发现还是主从mysql的server_id重复了,分别在主从节点执行sql,发现确实是一样的,可能是由于slave虚拟机是克隆出来导致的;

	show variables like 'server_id';

 所以得修改slave的server id,在slave执行sql

set global server_id=2;

执行完后重启slave,发现成功了

 

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值