1 准备
参考前面的博文你应该安装好了 MySQL,并复制了一个新的虚拟机,
主库地址: 192.168.56.101
主库地址: 192.168.56.102
2 主库配置
2.1 在 master 上创建同步账号
# 赋予账号 repl replication slave 权限, 其它 slave 服务器可以通过这个账号来访问 master
grant replication slave on *.* to 'repl'@'192.168.56.102' identified by
'your password';
注意这里的 IP 地址是 slave 的。
2.2 配置主节点,开启 binlog
vim /etc/my.cfg
配置如下:开启 binlog,设置节点 id:
log-bin=mysql-bin # 日志文件名前缀
server-id=1 # 在集群中的唯一id,值可以为1~2^32-1的整数
2.3 重启 mysql 服务
systemctl restart mysqld
2.4 查看主库状态
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
3 从库配置
3.1 配置从库 server-id
# vim /etc/my.cfg
server-id=2 # 在集群中的唯一id,值可以为1~2^32-1的整数
重启 mysql 服务:
systemctl restart mysqld
3.2 执行 CHANGE MASTER TO 语句设置同步的主库
CHANGE MASTER TO
MASTER_HOST='192.168.56.101', # master 的 ip
MASTER_USER='repl',
MASTER_PASSWORD='your password';
这里设置的
3.3 开启从库
START SLAVE;
查看从库状态:
SHOW SLAVE STATUS;
4 复制出现的问题
Note] Generated uuid: '5348c44b-c0a4-11e9-bb3d-0800275e32c6', server_start_time: 1111544684596399254, bytes_sent: 71674160
2019-08-17T04:06:01.595
这是我虚拟机克隆的时候让 master 和 slave 的 mysql 目录是一样的,fix:
cd /var/lib/mysql
mv auto.cnf auto.cnf.bac
systemctl restart mysqld # 重启 mysql
可以查看/var/log/mysqld.log
日志文件发现 mysql 运行中的问题。
到这一步应该可以了,现在在 master 里新建数据库和表,slave 就可以同步看到了。
参考:主从复制错误总结