为了在Docker中配置MySQL主从复制,你需要按照以下步骤进行操作:

步骤1:创建Docker镜像
首先,你需要创建两个MySQL Docker镜像,一个用作主服务器,另一个用作从服务器。可以使用以下命令来创建两个容器:

docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=<root_password> -p 3306:3306 -d mysql:latest
docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=<root_password> -p 3307:3306 -d mysql:latest
  • 1.
  • 2.

请确保将 <root_password>替换为你想要设置的实际root密码。

蓝易云服务器 - docker配置MySQL主从复制_MySQL

步骤2:配置主服务器
进入主服务器的容器:

docker exec -it mysql-master bash
  • 1.

然后登录MySQL:

mysql -uroot -p<root_password>
  • 1.

在MySQL中创建用于主从复制的用户,并授予适当的权限。假设你的复制用户是 replication_user,密码是 replication_password

CREATE USER 'replication_user'@'%' IDENTIFIED BY 'replication_password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
  • 1.
  • 2.
  • 3.

接下来,查看主服务器的状态:

SHOW MASTER STATUS;
  • 1.

将结果记录下来,包括 File和 Position的值。

步骤3:配置从服务器
进入从服务器的容器:

docker exec -it mysql-slave bash
  • 1.

然后登录MySQL:

mysql -uroot -p<root_password>
  • 1.

停止从服务器的复制进程:

STOP SLAVE;
  • 1.

配置从服务器连接主服务器:

CHANGE MASTER TO MASTER_HOST='<主服务器IP地址>', MASTER_PORT=3306, MASTER_USER='replication_user', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='<File值>', MASTER_LOG_POS=<Position值>;
  • 1.

请确保将 <主服务器IP地址>替换为你实际的主服务器IP地址,<File值>和 <Position值>替换为之前记录的主服务器状态中的值。

启动从服务器的复制进程:

START SLAVE;
  • 1.

步骤4:验证复制状态
在从服务器上运行以下命令来验证复制状态:

SHOW SLAVE STATUS \G
  • 1.

确保 Slave_IO_Running和 Slave_SQL_Running都显示为 Yes,这表示主从复制已成功配置。

以上是在Docker中配置MySQL主从复制的步骤。如果按照上述步骤进行操作,你应该能够成功地设置MySQL主从复制。记得根据实际情况进行替换,并且确保网络设置正确以允许主从服务器之间的通信。