Linux下mysql主从同步详细配置
1.环境准备
准备两台服务器,一台主服务器(Master),另一台从服务器(Slave),然后要保证Master与Slave的版本要相同且Master不能高于Slave的版本,一般稳健的做法都是使其版本相同,因为MySQL不同版本之间的binlog(二进制日志)格式可能会不一样,最后会导致同步出现异常。
介绍先到这里,以下我们先确认两台服务器的信息:
- 主服务器(master)
IP:10.16.195.49
系统:Linux(redhat centos7 64)
mysql版本:8.0.17
同步数据库:model_slave
同步帐号:model_slave
同步密码:slave123
- 从服务器(slave)两台
IP:10.16.195.50/10.16.195.51
系统:Linux(redhat centos7 64)
mysql版本:8.0.17
同步数据库:model_slave
2.master服务器配置
1.修改主服务器配置文件
sudo vim /etc/my.cnf
[mysqld]
# 新增如下
server-id=1
log_bin=/data/mysql/mysql-bin.log
expire_logs_days=10
max_binlog_size=100M
binlog_do_db=myslave # 如果需要同时同步多个数据库,请另起一行设置binlog_do_db=需要同步的数据库名称
binlog_ignore_db=mysql # 不想同步的数据库
2.保存退出,重启服务
service mysql restart
如果启动失败,通过查看mysql启动失败的日志,从日志内容寻找解决方案。
cat /data/mysql/mysql.log | tail -30
3.查看并记住master当前二进制名和偏移量。
这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复。
mysql> show master status;
+