Docker Compose 部署 MySQL 主从结构
要使用 Docker Compose 部署 MySQL 主从结构,您需要按照以下步骤进行操作:
- 创建
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
- 在主服务器上启用二进制日志,并设置
server-id。
command: mysqld --server-id=1 --log-bin=master-bin
- 在从服务器上启用从属,并设置其
server-id、master-host、master-user和master-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'
- 在
docker-compose.yml文件中,将从服务器的环境变量MYSQL_MASTER_HOST设置为主服务器的服务名称。
environment:
MYSQL_MASTER_HOST: master
- 运行
docker-compose up命令以启动两个 MySQL 服务器。
$ docker-compose up -d
您现在可以访问主服务器,并向其写入数据。该数据将被复制到从服务器。
要测试主从服务器是否正常工作,请在主服务器上创建一个新的表,并在从服务器上检查该表是否存在。如果该表存在,则说明主从服务器已成功设置。
备注: 如果您要将 MySQL 部署到不同的服务器上,请确保在 docker-compose.yml 文件中正确设置主服务器和从服务器的 IP 地址。
原文地址: https://www.cveoy.top/t/topic/lFug 著作权归作者所有。请勿转载和采集!