文章目录
安装Docker
- 官网地址
- 下载安装

- 验证Docker、Docker Compose

部署mysql 一主一从
-
登录ChatGPT搞方案

-
本地创建一个文件夹

-
编辑docker-compose.yml文件
version: "3.8" services: mysql_master: image: mysql/mysql-server:5.7 # 这里是个坑,要根据自己的电脑系统配~~ container_name: mysql_master restart: always environment: MYSQL_ROOT_PASSWORD: 12345678 MYSQL_DATABASE: db01 MYSQL_USER: root MYSQL_PASSWORD: 12345678 volumes: - mysql_master_data:/var/lib/mysql - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf ports: - "3307:3306" command: --server-id=1 --log-bin=mysql-bin --log-slave-updates=1 mysql_slave: image: mysql/mysql-server:5.7 container_name: mysql_slave restart: always environment: MYSQL_ROOT_PASSWORD: 12345678 MYSQL_DATABASE: db01 MYSQL_USER: root MYSQL_PASSWORD: 12345678 MYSQL_MASTER_HOST: mysql_master MYSQL_MASTER_PORT: 3306 MYSQL_MASTER_USER: root MYSQL_MASTER_PASSWORD: 12345678 volumes: - mysql_slave_data:/var/lib/mysql - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf ports: - "3308:3306" command: --server-id=2 # 唯一标识,这个不设置,同步数据就会失败 volumes: mysql_master_data: mysql_slave_data: -
启动检查并编排容器

-
验证



-
基于command的my.cnf配置的加载
可以从上面测试的可以看出my.cnf并没有生效

–init-file=/etc/mysql/init.sql
USE mysql; ALTER DATABASE db01 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

需要新建一个表

-
主数据库建一个用户给子数据库用于主从复制

-
启动主从同步
change master to \ master_host='127.0.0.1', \ master_user='slave', \ master_password='12345678', \ master_port=3307, \ master_log_file='mall-mysql-bin.000009', \ master_log_pos=1432, \ master_connect_retry=30; # 连接失败重试的时间间隔,单位为秒。

-
文章详细介绍了如何在本地通过Docker和DockerCompose安装并配置MySQL的一主一从复制。首先,需要安装Docker和DockerCompose,然后创建docker-compose.yml文件来定义主从服务,包括环境变量、数据卷和自定义my.cnf配置。接着,启动并检查容器,确保配置生效。最后,创建主数据库用户并进行主从同步设置。

734

被折叠的 条评论
为什么被折叠?



