ZBLOG

docker 搭建Mysql主从服务

要在Docker上搭建MySQL主从服务,可以按照以下步骤进行操作:

  1. 首先,在你的主机上安装Docker和Docker Compose。

  2. 创建一个文件夹,例如 mysql_replication,用于存放相关配置文件。

  3. mysql_replication 文件夹下创建 docker-compose.yml 文件,并添加以下内容:

version: '3'
services:
  master:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: your_database_name
      MYSQL_USER: your_username
      MYSQL_PASSWORD: your_password

  slave:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: your_database_name
      MYSQL_USER: your_username
      MYSQL_PASSWORD: your_password    

确保将 your_root_passwordyour_database_nameyour_usernameyour_password 替换为你自己的值。

  1. 创建一个名为 master.cnf 的文件,并添加以下内容:
[mysqld]
server-id=1
log-bin=mysql-bin

  1. 同样地,在同一目录下创建一个名为 slave.cnf 的文件,并添加以下内容:
[mysqld]
server-id=2

  1. 在终端中切换到 mysql_replication 目录,并执行以下命令启动容器:
docker-compose up -d --build 
  1. 容器启动后,进入主服务器容器中,并创建一个用于复制的用户。运行以下命令:
docker exec -it mysql_replication_master_1 mysql -uroot -p

在MySQL shell中执行以下语句(将 your_replication_useryour_replication_password 替换为你自己的值):

GRANT REPLICATION SLAVE ON *.* TO 'your_replication_user'@'%' IDENTIFIED BY 'your_replication_password';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;

记下输出结果中的 FilePosition 值。

  1. 在从服务器容器中,同样进入MySQL shell,并执行以下命令(将 <MASTER_IP>, <MASTER_PORT>, <REPLICATION_USER><REPLICATION_PASSWORD> 替换为对应的值):
docker exec -it mysql_replication_slave_1 mysql -uroot -p

然后运行以下命令:

CHANGE MASTER TO MASTER_HOST='<MASTER_IP>', MASTER_PORT=<MASTER_PORT>, MASTER_USER='<REPLICATION_USER>', MASTER_PASSWORD='<REPLICATION_PASSWORD>', MASTER_LOG_FILE='mysql-bin.<File>', MASTER_LOG_POS=<Position>;
START SLAVE;
SHOW SLAVE STATUS\G;

确保将 <MASTER_IP><MASTER_PORT><REPLICATION_USER><REPLICATION_PASSWORD><File><Position> 替换为之前主服务器上输出的正确值。

  1. 检查从服务器状态,在输出结果中查找 "Slave_IO_Running: Yes""Slave_SQL_Running: Yes" 来确保主从复制已经成功建立。

现在,你已经在Docker上成功搭建了MySQL主从服务。可以进行测试,尝试在主服务器上进行数据操作,并验证是否能在从服务器上同步复制数据。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=15309

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?