主从复制原理:将主服务器的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进行数据恢复到从库中去。
二:主服务器配置
- 在 /etc/my.cnf 的[mysqld]节点内,新加以下内容
注意:MySQL 5.1.7版本之后,已经不支持把master配置属性写入my.cnf配置文件中了,只需要把同步的数据库和要忽略的数据库写入即可。
[mysqld]
#主从配置
server-id=66 #服务器 id ,主从机器在同一局域网内必须全局唯一,不能相同
log-bin=mysql-bin #二进制文件存放路径,非必须,mysql8后默认存放/var/lib/mysql这里