1.docker compose 挂载目录时,如果宿主机上不存在该文件或目录,docker会自动以目录形式创建。如果宿主机上的是目录,挂载的就是目录,如果宿主机上的是文件,挂载的就是文件。

volumes:
      - ./mysql/master:/var/lib/mysql

2.挂载目录后,因为windows权限很宽松,同步到容器内,权限是所有人可读写执行,权限太宽松,mysql会直接忽略,拒绝加载。因此,挂载后要进入容器内修改权限,比如chmod 644 /etc/mysql.cnf。

3.直接复制数据库文件时,其实包含了mysql的uuid,也就是唯一识别码,会导致主从同步失败,删除从服务器上的auto.cnf文件即可。实际工作中建议使用官方推荐的工具mysqldumpxtrabackup

4.docker中运行了两个mysql服务器,通信时不要填IP地址,可以填mysql的服务配置名,比如mysql-master。同时要注意配置网络,以免主从数据库无法通信。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注