Mysql8.0主从同步,主从复制详解(超详细)

主从复制原理:将主服务器的binlog日志复制到从服务器上执行一遍,达到主从数据的一致状态。

过程:从库开启一个I/O线程,向主库请求Binlog日志。主节点开启一个binlog dump线程,检查自己的二进制日志,并发送给从节点;从库将接收到的数据保存到中继日志(Relay log)中,另外开启一个SQL线程,把Relay中的操作在自身机器上执行一遍
 

一:准备事项

1 两台服务器,mysql版本一致,不然会出现问题 如果不会的可以参看我的另外一篇文章

centos7安装mysql8详细介绍(超详细)nginx+keepalived集群高可用详细部署,keepalived安装启动报错问题(超详细)

172.16.21.238 主服务器

172.16.21.237从服务器

注意:在进行主从同步之前先确保要备份的数据库和表在同库存在,主从复制不会创建库和表,如果没有会出现不能同步的错误,可以自己通过mysqldump进行数据导出,然后再用source进行数据恢复到从库中去。

二:主服务器配置

  1. 在 /etc/my.cnf 的[mysqld]节点内,新加以下内容

注意:MySQL 5.1.7版本之后,已经不支持把master配置属性写入my.cnf配置文件中了,只需要把同步的数据库和要忽略的数据库写入即可。

[mysqld]

#主从配置

server-id=66  #服务器 id ,主从机器在同一局域网内必须全局唯一,不能相同

log-bin=mysql-bin   #二进制文件存放路径,非必须,mysql8后默认存放/var/lib/mysql这里

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主从同步是指将一个MySQL数据库服务器(主服务器)的数据实时复制到另一个MySQL数据库服务器(从服务器)的过程。在MySQL 8.0版本中,可以通过以下步骤进行主从同步的配置: 1. 在主服务器上,在`/etc/my.cnf`文件的`[mysqld]`节点内添加以下配置: ``` server_id=1 # 主服务器的唯一标识,每个服务器都应该有一个唯一的ID log_bin=mysql-bin # 二进制日志文件的名称 binlog_format=row # 二进制日志的格式,建议使用row格式,以便更好地支持复制 ``` 2. 在主服务器上重启MySQL服务,使配置生效。 3. 在从服务器上,在`/etc/my.cnf`文件的`[mysqld]`节点内添加以下配置: ``` server_id=2 # 从服务器的唯一标识,每个服务器都应该有一个唯一的ID ``` 4. 在从服务器上重启MySQL服务,使配置生效。 5. 在主服务器上创建一个用于复制的用户,并授予适当的权限: ``` CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; FLUSH PRIVILEGES; ``` 6. 在从服务器上执行以下命令,设置从服务器与主服务器建立连接: ``` CHANGE MASTER TO MASTER_HOST='主服务器的IP地址', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_PORT=主服务器的端口号; ``` 7. 在从服务器上启动从服务器的复制进程: ``` START SLAVE; ``` 8. 检查主从同步的状态,在从服务器上执行以下命令: ``` SHOW SLAVE STATUS\G; ``` 如果`Slave_IO_Running`和`Slave_SQL_Running`均显示为`Yes`,则表示主从同步已成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值