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…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。