写点什么

mysql 主从复制 docker 版

  • 2024-12-01
    四川
  • 本文字数:1021 字

    阅读完需:约 3 分钟

mysql主从复制docker版

首先,我们需要创建两个 MySQL Docker 容器,一个作为主服务器(master),另一个作为从服务器(slave)。这里我们使用官方的 mysql 镜像。

步骤一:创建网络

docker network create mysql-net
复制代码

步骤二:启动主服务器

docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=masterpass -d --network=mysql-net mysql:5.7
复制代码

这里设置了 root 用户密码为'masterpass'。记住,在生产环境中,请使用更安全的密码。

步骤三:启动从服务器

docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=slavepass -d --network=mysql-net mysql:5.7 
复制代码

同样地,root 用户密码设定为'slavepass'。在生产环境中,请确保使用更安全的密码。

接下来需要配置主从复制。首先配置主数据库:

步骤四:进入 mysql-master 容器并登录 MySQL:

docker exec -it mysql-master bash mysql -u root –p  # 输入你之前设定好的root用户密码 'masterpass'
复制代码

然后执行以下 SQL 命令以创建用于复制过程所需用到的用户,并授予该用户 REPLICATION SLAVE 权限:

CREATE USER 'repl'@'%' IDENTIFIED BY 'replpassword';  GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';  
复制代码

接下来,我们需要获取主服务器的二进制日志文件名和位置,这些信息将用于从服务器的配置。执行以下 SQL 命令:

SHOW MASTER STATUS;  
复制代码

记下返回结果中的 File 和 Position 字段值。

步骤五:配置从数据库。首先进入 mysql-slave 容器并登录 MySQL:

docker exec -it mysql-slave bash mysql -u root –p # 输入你之前设定好的root用户密码 'slavepass'
复制代码

然后执行以下 SQL 命令以设置主服务器信息:

CHANGE MASTER TO MASTER_HOST='mysql-master',MASTER_USER='repl',MASTER_PASSWORD='replpassword',MASTER_LOG_FILE='<File>',MASTER_LOG_POS=<Position>;  START SLAVE;   
复制代码

在上述 SQL 中,将''和''替换为你在步骤四中获取到的值。

至此,MySQL 主从复制已经设置完成。你可以通过在主数据库上创建表或插入数据等操作来测试复制是否成功。

注意:这个教程是基于 Docker 环境进行操作,并且使用了最基础、最简单、最直接且易于理解的方式进行说明。实际生产环境可能会有更多复杂性需要考虑,并可能需要更多安全性控制以及错误处理机制等。

蓝易云-五网CN2服务器【点我购买】蓝易云采用KVM高性能架构,稳定可靠,安全无忧!蓝易云服务器真实CN2回国线路,不伪造,只做高质量海外服务器。


海外免备案云服务器链接:www.tsyvps.com

蓝易云香港五网 CN2 GIA/GT 精品网络服务器。拒绝绕路,拒绝不稳定。

用户头像

百度搜索:蓝易云 2023-07-05 加入

香港五网CN2免备案服务器

评论

发布
暂无评论
mysql主从复制docker版_百度搜索:蓝易云_InfoQ写作社区