要使用 Docker Compose 部署主从结构的 MySQL,可以按照以下步骤操作:

  1. 创建一个 docker-compose.yml 文件,其中包含两个 MySQL 服务:主服务器和从服务器。

  2. 配置主服务器的 Docker Compose 服务,指定 MySQL 容器的环境变量,例如 MYSQL_ROOT_PASSWORDMYSQL_DATABASE

  3. 配置从服务器的 Docker Compose 服务,指定 MySQL 容器的环境变量,并加入复制参数,例如 MYSQL_ROOT_PASSWORDMYSQL_DATABASEMYSQL_REPLICATION_MODEMYSQL_REPLICATION_SLAVE_ADDRESS

  4. docker-compose.yml 文件中添加一个网络服务,以确保主服务器和从服务器之间的通信。

  5. 部署 Docker Compose 服务,启动主服务器和从服务器。从服务器将自动连接到主服务器并开始复制数据。

下面是一个简单的 docker-compose.yml 文件示例:

version: '3'
services:
  db-master:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: test
    networks:
      - db-network
    volumes:
      - master-data:/var/lib/mysql
    command: >
      --server-id=1
      --log-bin
      --binlog-do-db=test
      --binlog-ignore-db=mysql
  db-slave:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: test
      MYSQL_REPLICATION_MODE: slave
      MYSQL_REPLICATION_MASTER_HOST: db-master
      MYSQL_REPLICATION_MASTER_PORT: 3306
      MYSQL_REPLICATION_USER: replication
      MYSQL_REPLICATION_PASSWORD: example
      MYSQL_REPLICATION_SLAVE_ADDRESS: 'db-slave:3306'
    networks:
      - db-network
    volumes:
      - slave-data:/var/lib/mysql
volumes:
  master-data:
  slave-data:
networks:
  db-network:

在上面的示例中,我们创建了两个服务:db-masterdb-slavedb-master 是主服务器,db-slave 是从服务器。 我们还创建了一个名为 db-network 的网络服务,以确保主服务器和从服务器之间的通信。

db-master 服务的 environment 中,我们指定了 MySQL 的 root 密码和数据库名称。 我们还指定了一些额外的命令行选项,例如 --server-id--log-bin--binlog-do-db。 这些选项允许 MySQL 创建一个二进制日志文件,并记录在 test 数据库中进行的更改。

db-slave 服务的 environment 中,我们指定了 MySQL 的 root 密码和数据库名称,以及一些用于复制的参数,例如 MYSQL_REPLICATION_MODEMYSQL_REPLICATION_MASTER_HOSTMYSQL_REPLICATION_SLAVE_ADDRESS

我们还将 db-slave 服务的复制模式设置为 slave,并指定主服务器的主机名和端口号。 最后,我们指定了用于连接到主服务器的复制用户名和密码,并指定了从服务器的地址。

最后,我们在 docker-compose.yml 文件中添加了两个数据卷:master-dataslave-data。 这些数据卷将在主服务器和从服务器之间共享,并存储所有 MySQL 数据。

要启动 Docker Compose 服务,请在终端中导航到包含 docker-compose.yml 文件的目录,并运行以下命令:

docker-compose up -d

这将启动所有服务,并将 db-masterdb-slave 连接到 db-network 网络服务。 从服务器将自动连接到主服务器,并开始复制数据。

如果您想停止 Docker Compose 服务,请在终端中导航到包含 docker-compose.yml 文件的目录,并运行以下命令:

docker-compose down

这将停止所有服务,并删除所有容器和数据卷。

Docker Compose 部署主从结构 MySQL:详细教程和示例

原文地址: https://www.cveoy.top/t/topic/lFuf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录