在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言 本篇文章记录我使用 docker-compose 以及 dockerfile 来构建基于 binlog 的 MySQL 主从环境。如果你严格按照文中的步骤进行配置,相信很快就可以搭建好一个基础的 MySQL 主从环境。 介绍 MySQL 主从同步分为 3 个步骤:
配置 创建目录结构 首先先搞定目录结构,我的目录结构如下,如果想按照自己的想法来组建目录,在下文中的 docker-compose.yaml 文件与 Dockerfile 文件要注意修改文件路径。 配置 docker-compose 模版文件 version: "3" services: mysql-master: build: context: ./ dockerfile: mysql/master/Dockerfile container_name: mysql-master volumes: - ./mysql/master/data:/var/lib/mysql restart: always ports: - 3305:3306 links: - mysql-slave mysql-slave: build: context: ./ dockerfile: mysql/slave/Dockerfile container_name: mysql-slave volumes: - ./mysql/slave/data:/var/lib/mysql restart: always ports: - 3306:3306 配置 master 节点的 cluster.cnf 文件以及 Dockerfile 文件 [mysqld] server_id=100 binlog-ignore-db=mysql log-bin=replicas-mysql-bin binlog_cache_size=1M binlog_format=mixed slave_skip_errors=1062 # 我的 MySQL 为 8.x,需要如下配置 default_authentication_plugin=mysql_native_password character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci FROM mysql:latest ADD ./mysql/master/cluster.cnf /etc/mysql/conf.d/cluster.cnf ENV MYSQL_ROOT_PASSWORD=password 配置 slave 节点的 cluster.cnf 文件以及 Dockerfile 文件 [mysqld] server_id=101 binlog-ignore-db=mysql binlog_cache_size=1M binlog_format=mixed slave_skip_errors=1062 relay_log=replicas-mysql-relay-bin log_slave_updates=1 read_only=1 # 我的 MySQL 为 8.x,需要如下配置 default_authentication_plugin=mysql_native_password character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci FROM mysql:latest ADD ./mysql/slave/cluster.cnf /etc/mysql/conf.d/cluster.cnf ENV MYSQL_ROOT_PASSWORD=password 创建容器 docker-compose up -d mysql-master mysql-slave 运行上述命令进行容器创建,如果构建时间过长,可以考虑更换镜像源,例如下面几个国内优质镜像源: 网易: http://hub-mirror.c.163.com 阿里云: http://< ;你的ID>.mirror.aliyuncs.com 中国科学技术大学: http://docker.mirrors.ustc.ed... 构建完成之后,使用 配置 slave 节点 首先使用 docker 命令进入到 mysql-master 容器中,再登录到 mysql 输入 接下来使用 docker 命令进入 mysql-slave 容器,再登录到 mysql 输入以下语句进行与 mysql-master 连接。 CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_USER='root', MASTER_PASSWORD=你设置的密码, MASTER_LOG_FILE=上一步得到的 File 参数, MASTER_LOG_POS=上一步得到的 Position 参数; 输入完成后再键入 测试主从节点同步状态 登录到 mysql-master 节点,创建一个全新的库,创建成功之后,切换到 mysql-slave 节点,输入 总结 这是我自己尝试搭建 MySQL 主从架构所记录的步骤,到此这篇关于详解用Docker构建MySQL主从环境的文章就介绍到这了,更多相关Docker构建MySQL主从内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论