要使用 Docker Compose 部署 MySQL 主从结构,您需要按照以下步骤进行操作:

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

services:
  master:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'password'
      MYSQL_DATABASE: 'database'
    volumes:
      - ./master:/var/lib/mysql
    command: mysqld --server-id=1 --log-bin=master-bin

  slave:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'password'
      MYSQL_DATABASE: 'database'
      MYSQL_MASTER_HOST: master
      MYSQL_MASTER_USER: root
      MYSQL_MASTER_PASSWORD: 'password'
    volumes:
      - ./slave:/var/lib/mysql
    command: mysqld --server-id=2 --log-bin=slave-bin --relay-log=slave-relay-bin --log-slave-updates --read-only
  1. 在主服务器上启用二进制日志,并设置 server-id
command: mysqld --server-id=1 --log-bin=master-bin
  1. 在从服务器上启用从属,并设置其 server-idmaster-hostmaster-usermaster-password
command: mysqld --server-id=2 --log-bin=slave-bin --relay-log=slave-relay-bin --log-slave-updates --read-only
environment:
  MYSQL_MASTER_HOST: master
  MYSQL_MASTER_USER: root
  MYSQL_MASTER_PASSWORD: 'password'
  1. docker-compose.yml 文件中,将从服务器的环境变量 MYSQL_MASTER_HOST 设置为主服务器的服务名称。
environment:
  MYSQL_MASTER_HOST: master
  1. 运行 docker-compose up 命令以启动两个 MySQL 服务器。
$ docker-compose up -d

您现在可以访问主服务器,并向其写入数据。该数据将被复制到从服务器。

要测试主从服务器是否正常工作,请在主服务器上创建一个新的表,并在从服务器上检查该表是否存在。如果该表存在,则说明主从服务器已成功设置。

备注: 如果您要将 MySQL 部署到不同的服务器上,请确保在 docker-compose.yml 文件中正确设置主服务器和从服务器的 IP 地址。

Docker Compose 部署 MySQL 主从结构

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

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