117.info
人生若只如初见

docker怎么搭建mysql主从

要在Docker中搭建MySQL主从复制,可以按照以下步骤操作:

  1. 创建MySQL主从复制的网络(可选):
docker network create mysql-replication
  1. 启动MySQL主服务器:
docker run -d --name mysql-master --network mysql-replication -e MYSQL_ROOT_PASSWORD=password mysql:latest
  1. 启动MySQL从服务器:
docker run -d --name mysql-slave --network mysql-replication -e MYSQL_ROOT_PASSWORD=password mysql:latest
  1. 配置主服务器: 登录到主服务器容器中,创建用于复制的用户,并开启二进制日志记录和GTID:
docker exec -it mysql-master bash
mysql -u root -p

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

SET GLOBAL binlog_format = 'ROW';
SET GLOBAL log_slave_updates = 1;
SET GLOBAL gtid_mode = ON;
SET GLOBAL enforce-gtid-consistency = ON;
  1. 配置从服务器: 登录到从服务器容器中,配置从服务器连接主服务器并开始复制:
docker exec -it mysql-slave bash
mysql -u root -p

CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1;
START SLAVE;
  1. 检查主从复制状态: 在主服务器上执行以下命令检查主从复制状态:
SHOW MASTER STATUS;

在从服务器上执行以下命令检查主从复制状态:

SHOW SLAVE STATUS \G;

如果输出结果中的Slave_IO_RunningSlave_SQL_Running均显示Yes,则表示主从复制已成功搭建。

通过以上步骤,您可以在Docker中成功搭建MySQL主从复制的环境。

未经允许不得转载 » 本文链接:https://www.117.info/ask/feee2AzsIAAJTB1Q.html

推荐文章

  • 如何在MySQL中有效使用SIGNAL

    在MySQL中,SIGNAL语句用于生成一个警告或错误消息,并且可以在存储过程或触发器中使用。以下是如何有效使用SIGNAL语句: 发出警告消息:可以使用SIGNAL语句发出...

  • MySQL SIGNAL与TRIGGER联用的示例

    在MySQL中,可以使用SIGNAL语句和TRIGGER语句联合使用来实现在特定条件下触发信号的功能。
    假设有一个名为students的表,其中包含学生的姓名和成绩字段。现...

  • MySQL SIGNAL可以做数据库警告吗

    是的,MySQL的SIGNAL语句可以用来发出数据库警告。可以使用SIGNAL语句在存储过程或触发器中生成自定义警告消息。警告消息可以是任何自定义文本,可以提醒用户某些...

  • 为何MySQL SIGNAL对开发者重要

    MySQL SIGNAL语句对开发者非常重要,因为它允许开发者在存储过程中引发自定义的异常或错误消息。这样开发者可以更好地处理和报告错误,提高代码的可读性和可维护...

  • linux系统时间怎么修改

    在Linux系统中,可以使用date命令来修改系统时间。以下是一些常见的用法: 修改系统时间: sudo date -s "YYYY-MM-DD HH:MM:SS" 其中,YYYY-MM-DD HH:MM:SS是你要...

  • java如何获取三个月前的日期

    在Java中,可以使用Calendar类来获取三个月前的日期。以下是一个示例代码:
    import java.util.Calendar;
    import java.util.Date; public class Main {...

  • java怎么创建二维数组

    在Java中创建二维数组的方式有两种: 使用静态初始化: int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}
    }; 使用动态初始化: int rows = 3;
    int ...

  • java数据库备份方法是什么

    在Java中备份数据库通常可以通过以下方法来实现: 使用数据库管理工具:通过数据库管理工具如MySQL Workbench、Navicat等,可以方便地进行数据库备份操作。这些工...