# 在master数据库中创建用于备份的用户
create user mysqlBackup identified with mysql_native_password by "MyUbuntu20.04";# 给用户增加slave权限
grant replication slave on *.* to mysqlBackup;# 刷新权限
flush privileges;
3、获取主服务器master的二进制日志信息
# 命令
show master status;# File为使用的日志文件名字,Position为使用的文件位置,这两个参数须记下,配置从服务器时会用到。
4、配置从服务器slave的/etc/mysql/mysql.conf.d/mysqld.cnf
配置 server-id、 log_bin 字段, 和 slave一样
5、在从服务器slave中配置master
# 在slave的配置master
change master to master_host="106.14.173.166", master_user="mysqlBackup", master_password="MyUbuntu20.04",master_port=10000, master_log_file="mysql-bin.000001", master_log_pos=665;
master_host:主服务器的ip地址
master_log_file: 前面查询到的主服务器日志文件名(在master中执行 show master status 查看)
aster_log_pos: 前面查询到的主服务器日志文件位置(在master中执行 show master status 查看)
master_port : 主服务器中mysql使用的端口
6、启动从服务器slave备份
# 启动
start slave;# 查看状态
show slave status \G;
7、问题及解决
01、Slave_IO_Running = NO
查看错误日志 vi /var/log/mysqld.log,
报错:Fatal error: The slave I/O thread stopsbecause master and slave have equal MySQL server UUIDs; these UUIDs must bedifferent for replication to work.”
由于容器是从一个镜像生成的,索引UUID是一样的, 查看/var/lib/mysql/auto.cnf, 发现UUID一样, 导致了Slave_IO_Running = NO
解决: 删除/var/lib/mysql/auto.cnf, 重启容器后/var/lib/mysql/auto.cnf会自动重新生成一个。