Docker搭建MySQL集群全攻略

资源类型:00-2.net 2025-06-10 18:52

docker mysql集群搭建步骤简介:



Docker MySQL集群搭建详细步骤 在当今数据驱动的时代,MySQL作为一款开源的关系型数据库管理系统,凭借其高性能、稳定性和灵活性,在各类应用中得到了广泛应用

    为了提升MySQL数据库的可用性、可扩展性和容灾能力,搭建MySQL集群显得尤为重要

    本文将详细介绍如何使用Docker来搭建MySQL集群,涵盖环境准备、Docker安装、MySQL镜像下载、容器创建与配置、数据同步等关键步骤,帮助你快速构建稳定可靠的MySQL集群

     一、环境准备 1. 服务器配置 在开始搭建MySQL集群之前,需要准备一台运行Docker的服务器

    建议使用性能稳定的服务器,并确保系统已经更新到最新版本,安装了必要的安全补丁

    本文将以CentOS 7为例进行说明

     2. Docker安装 Docker的安装可以参考Docker官方文档进行操作

    以下是CentOS 7上安装Docker的步骤: 更新系统并安装必要工具 sudo yum update -y sudo yum install -y yum-utils device-mapper-persistent-data lvm2 设置Docker的稳定版仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 安装Docker CE sudo yum install -y docker-ce docker-ce-cli containerd.io 启动Docker服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker 3. Docker Compose安装 Docker Compose是一个用于定义和运行多容器Docker应用程序的工具

    它可以通过YAML文件来配置应用程序所需的所有服务

    以下是安装Docker Compose的步骤: 下载Docker Compose sudo curl -L https://github.com/docker/compose/releases/download/v2.33.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose 赋予执行权限 sudo chmod +x /usr/local/bin/docker-compose 验证安装 docker-compose --version 二、MySQL镜像下载 Docker Hub上提供了多种版本的MySQL镜像,你可以根据自己的需求选择合适的版本

    以下是下载MySQL 5.7镜像的命令: docker pull mysql:5.7 如果你希望使用最新版本的MySQL,可以省略版本号: docker pull mysql 三、创建自定义网络 Docker提供了三种网络驱动供用户自定义:bridge、overlay和macvlan

    由于我们是在一台机器上搭建集群,所以选择bridge网络即可

    可以使用以下命令创建自定义bridge网络: docker network create --driver bridge my-custom-network 四、创建主数据库容器 1. 创建容器 使用以下命令创建主数据库容器,并将容器的3307端口映射到宿主机的3307端口: docker run --restart=always -p 3307:3306 --name mysql-master -v /docker-volume/mysql-master/log:/var/log/mysql -v /docker-volume/mysql-master/data:/var/lib/mysql -v /docker-volume/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root --network my-custom-network mysql:5.7 2. 配置MySQL服务 进入容器进行后续配置: docker exec -it mysql-master /bin/bash 在容器中,执行以下命令更新软件包列表并安装vim(可选): apt-get update && apt-get install vim -y 然后,进入`/docker-volume/mysql-master/conf`目录下新建`my.cnf`文件,并添加以下配置: 【mysqld】 server_id=101 log-bin=mall-mysql-bin binlog_cache_size=1M expire_logs_days=7 slave_skip_errors=1062 其中,`server_id`需要在同一局域网中唯一,`log-bin`用于开启二进制日志功能,`binlog_cache_size`设置二进制日志使用内存大小,`expire_logs_days`设置二进制日志过期清理时间,`slave_skip_errors`用于跳过主从复制中遇到的指定类型的错误

     3. 重启容器 配置完成后,重启容器使配置生效: docker restart mysql-master 4. 创建数据同步用户 登录MySQL数据库,并创建用于数据同步的用户: CREATE USER slave@% IDENTIFIED BY 123456; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON. TO slave@%; FLUSH PRIVILEGES; 五、创建从数据库容器 1. 创建容器 使用以下命令创建从数据库容器,并将容器的3308端口映射到宿主机的3308端口: docker run --restart=always -p 3308:3306 --name mysql-slave -v /docker-volume/mysql-slave/log:/var/log/mysql -v /docker-volume/mysql-slave/data:/var/lib/mysql -v /docker-volume/mysql-slave/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root --network my-custom-network mysql:5.7 2. 配置MySQL服务 进入容器进行后续配置: docker exec -it mysql-slave /bin/bash 在容器中,进入`/docker-volume/mysql-slave/conf`目录下新建`my.cnf`文件,并添加以下配置: 【mysqld】 server_id=102 log-bin=mall-mysql-slave1-bin relay_log=mall-mysql-relay log_slave_updates=1 read_only=1 其中,`server_id`需要在同一局域网中唯一,`log-bin`用于开启二进制日志功能(以备Slave作为其它数据库实例的Master时使用),`relay_log`配置中继日志,`log_slave_updates`表示slave将复制事件写进自己的二进制日志,`read_only`设置为只读(具有super权限的用户除外)

     3. 重启容器 配置完成后,重启容器使配置生效: docker restart mysql-slave 六、主从同步配置 1. 在主数据库中查看主从同步状态 登录主数据库,执行以下命令查看主从同步状态: SHOW MASTER STATUS; 记录下`File`和`Position`字段的值,它们将在从数据库配置中使用

     2. 配置从数据库 登录从数据库,执行以下命令配置主从复制: CHANGE MASTER TO MASTER_HOST=192.168.30.100, MASTER_USER=slave, MASTER_PASSWORD=123456, MASTER_PORT=3307, MASTER_LOG_FILE=mall-mysql-bin.000002, MASTER_LOG_POS=1423, MASTER_CONNECT_RETRY=30; 其中,`MASTER_HOST`指定主数据库的IP地址,`MASTER_USER`和`MASTER_PASSWORD`是在主数据库创建的用于同步数据的用户账号和密码,`MASTER_PORT`指定主数据库的运行端口,`MASTER_LOG_FILE`和`MASTER_LOG_POS`通过查看主数据的状态获取,`MASTER_CONNECT_RETRY`设置连接失败重试的时间间隔

     3. 开启从数据库同步 在从数据库中执行以下命令开启主从同步: START SLAVE; 4. 查看从数据库同步状态 在从数据库中执行以下命令查看主从同步状态: SHOW SLAVE STATUS

阅读全文
上一篇:Windows解压安装MySQL5.7教程

最新收录:

  • Ubuntu下MySQL数据导出指南
  • Windows解压安装MySQL5.7教程
  • MySQL条件表达式:解锁高效数据查询的秘诀
  • MySQL存储数据并获取ID指南
  • MySQL8 安装步骤详解指南
  • Java枚举存储至MySQL指南
  • MySQL数据库:如何查看表列属性详解
  • MySQL数据库中长整型数据详解
  • MySQL网络带宽占用高的揭秘
  • MySQL与Hive数据整合实战指南
  • 掌握MySQL全屏操作技巧,提升数据库管理效率
  • MySQL第二版:数据库管理实战指南
  • 首页 | docker mysql集群搭建步骤:Docker搭建MySQL集群全攻略