云服务器(腾讯云2核2g)CentOS7.6,docker部署Mysql主从复制的坑

常规部署可参考

BUG内容

主从数据库启动后自动停止运行,重新执行docker restart无效

原因排查

  • 方案一:dmesg | grep mysql 查看docker关于mysql的日志
  • 实测无相关日志,说明该bug与docker无关
  • 即不存在mysql使用的内存过多,导致系统杀死了对应的进程(该原因会在docker日志中显示)

  • 方案二: docker logs 实例name/id 查看实例日志
  • 下图可以看出确实存在报错日志

解决方案

  • 清空MySQL挂载在主机上,/data 目录下的所有文件;
  • 重新创建mysql实例
1
Fatal error: Can‘t open and lock privilege tables: Table ‘mysql.user‘ doesn‘t exis

该报错常见于数据库迁移时,缺少MySQL数据库的系统文件 “ performance_schema ”,本处由于创建mysql主从机时,采用:
先运行数据库实例,再将数据库文件挂载到主机上,然后添加配置文件,删除原实例之后重新创建实例
导致数据库文件错误