Docker 部署 mysql读写分离

342 阅读3分钟

MySQL 主从配置指南:Docker 实现方案

在数据库管理中,MySQL 的主从配置是提升数据可用性和性能的重要手段。本文将通过 Docker 容器的方式,详细介绍 MySQL 主从配置的步骤。

Master 配置

1. 下载镜像

首先,我们需要下载 MySQL 5.6 的镜像。在命令行中执行以下命令:

bash

docker pull mysql:5.6

同时,在本地创建一个名为 mysql - master.cnf 的配置文件。你可以在这个 链接 找到相关说明。

2. 运行主机容器

接下来,使用以下命令运行主机容器:

bash

sudo docker run  -e MYSQL_ROOT_PASSWORD=123456 --name mysql - master   -v /etc/mysql/mysql - master.cnf:/etc/mysql/my.cnf -p 3306:3306 mysql:5.6

在这个命令中:

  • -e MYSQL_ROOT_PASSWORD=123456 设置了 MySQL 根用户的密码为 123456
  • --name mysql - master 给容器命名为 mysql - master
  • -v /etc/mysql/mysql - master.cnf:/etc/mysql/my.cnf 将本地的 mysql - master.cnf 配置文件挂载到容器内的 /etc/mysql/my.cnf 位置。
  • -p 3306:3306 把主机的 3306 端口映射到容器的 3306 端口,方便外部访问。

3. 授权

容器运行起来后,进入容器内部并执行授权操作,赋予 slave 用户在所有数据库上进行复制从库的权限:

sql

grant replication slave on. to 'slave'@'%' identified by 'slave';

4. 刷新权限

执行以下命令,让刚刚的授权操作立即生效:

sql

flush privileges;

5. 查看主库状态

最后,执行这个命令来查看主库的状态:

sql

show master status;

需要注意的是,如果执行此命令返回结果为 null,有可能是因为没有正确挂载 my.cnf 文件。

Slave 配置

1. 下载镜像

与 Master 配置一样,先下载 MySQL 5.6 镜像:

bash

docker pull mysql:5.6

同样在本地创建 mysql - master.cnf 文件(相关说明参考 此链接 )

2. 运行从机容器

使用以下命令来运行从机容器:

bash

sudo docker run  -e MYSQL_ROOT_PASSWORD=123456 --name mysql - slave   -v /etc/mysql/mysql - slave.cnf:/etc/mysql/my.cnf -p 3307:3306 mysql:5.6

该命令与主机容器命令类似,不同之处在于容器命名为 mysql - slave,挂载的是 mysql - slave.cnf 配置文件,并且主机端口映射为 3307

3. 配置主机

进入从机容器后,执行以下命令配置主机信息:

sql

change master to master_host='106.12.215.254',master_user='root',master_password='123456',master_log_file='mysql - bin.000005',master_log_pos=532,master_port=3306;

这里需要根据实际的主库信息进行修改,master_host 为主机的 IP 地址,master_user 和 master_password 是主库的登录用户名和密码,master_log_file 和 master_log_pos 可以通过主库的 show master status; 命令获取。

4. 启动从机

配置完成后,执行以下命令启动从机服务:

sql

start slave;

5. 查看从机状态

最后,使用这个命令详细查看从机的状态:

sql

show slave status \G

作者:不合格的程序员
链接juejin.cn/post/695380…
来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。