docker搭建mysql数据库集群

本文详细介绍了如何使用Docker在CentOS服务器上部署MySQL数据库集群的过程。包括安装Docker、拉取MySQL镜像、配置主从数据库、设置复制等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始搭建前,先确保系统防火墙或数据对应端口开放

搭建环境:安装docker的centos7服务器

1.安装docker

http://www.runoob.com/docker/centos-docker-install.html

2.安装好docker之后下载对应的MYSQL镜像,这里为5.6版本

           docker pull registry.docker-cn.com/library/mysql:5.6

3.运用docker images 命令查看镜像ID

           

4.建立MYSQL主数据库

            Docker run -restart=always -p port:3306 -v /mysqlDB/mysql/master/:/var/lib/mysql                MYSQL_ROOT_PASSWORD=123456  --name  名称 -d  IMAGE ID

           

5.运用docker ps命令查看服务是否创建成功

           

            能查看到说明服务创建成功如果不能说明服务创建失败,重新之前的步骤。

6.运用docker exec -ti CONTAINER ID /bin/bash进入到服务器目录

           

           当命令行头为ID root+ID名时,进入到容器

7.修改配置文件mysqld.cnf

           

           如果服务里没有安装VIM会出现下面错误

           

           如果是上图错误,需要安装VIM

           apt-get update  && apt-get install vim -y

           

           如上内容说明VIM安装完成

8.在配置文件中加入如下内容

           

           server-id = 1

           log_bin = mysql-log-bin

           lower_case_table_names=1

           红线部分为主要部分

           增加完之后Esc :wq保存退出

           回到命令行:exit退出命令回到root

           Docker restart CONTAINER ID 重启mysql服务

9.重复步骤6进入容器中调用 mysql -u root -p

           

        ①创建用户:create user 'test'@'IP' identified by '123456';

            

        ②授权:GRANT REPLICATION SLAVE ON *.* to 'test'@'%' identified by '123456';

           

        ③查看master:show master status;

10.建立从库服务器

         Docker run -restart=always -p port:3306 -v /mysqlDB/mysql/master/:/var/lib/mysql                MYSQL_ROOT_PASSWORD= 密码 --name  名称 -d  IMAGE ID

port和name要和主库区分出来

11.重复2,3,4,5,6步骤进入到配置修改

           

           relay-log=mysql-bin
           log-bin=mysql-log-bin
           log-slave-updates =1
           server-id = 2
           lower_case_table_names=1
           sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

12.执行命令CHANGE MASTER TO MASTER_HOST='IP',MASTER_USER='主库user', MASTER_PASSWORD='主库password',MASTER_LOG_FILE='File(mysql-log-bin.000001)', MASTER_LOG_POS=Position(2910),master_port=主库(port)3307;

              

              如下图为集群创建成功

             show slave status \G;

              

13.登录到数据库中,主库创建数据库,从库同步也会创建到这里MYSQL数据库集群完成

                                  

 

如果有问题可以邮箱864377400@qq.com联系,会帮忙解决搭建过程中出现的问题。

谢谢大家观看!!

### 在Docker Swarm中设置和配置数据库集群 #### 创建并初始化Swarm集群 为了在Docker Swarm环境中部署数据库集群,首先要确保已经有一个可用的Swarm集群。这涉及到选择一台服务器作为Manager节点来初始化Swarm,并将其他机器添加到这个集群里成为Worker节点[^2]。 ```bash docker swarm init --advertise-addr <MANAGER-IP> ``` 对于每台想要加入该集群的工作节点,则需执行由`docker swarm init`命令返回的一条特定指令;通常形式如下: ```bash docker swarm join --token SWMTKN... <MANAGER-IP>:<PORT> ``` #### 准备服务定义文件 接着准备用于描述各个组件的服务定义文件(通常是YAML格式),这里以MySQL为例说明如何编写这样的配置文档。此文件会指定镜像版本、环境变量以及网络连接等必要参数。 ```yaml version: '3' services: mysql-master: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: example deploy: replicas: 1 restart_policy: condition: on-failure networks: - backend networks: backend: ``` 上述例子仅展示了单一Master实例的情况,在实际生产环境下还需要考虑Slave副本以及其他高可用性的设计模式[^4]。 #### 使用Consul实现服务发现 为了让不同微服务之间能够互相找到对方,可以在整个架构之上集成Consul来进行服务注册和服务发现操作。通过这种方式不仅可以简化跨容器通信流程,而且有助于提高系统的可维护性和扩展能力[^3]。 ```json { "service": { "name": "mysql", "tags": ["master"], "port": 3306, "checks": [ {"tcp": "localhost:3306", "interval": "10s"} ] } } ``` 以上JSON片段代表了一个简单的健康检查机制,它定期测试目标端口是否可达从而判断对应服务的状态良好与否。 #### 启动服务并与Consul关联 最后一步就是利用之前提到过的服务定义文件去启动相应的服务,并确保这些服务能够在启动过程中正确地向Consul报告自己的存在。可以通过下面这条命令完成这项工作: ```bash docker stack deploy -c docker-compose.yml myapp ``` 这样就完成了在一个基于Docker Swarm平台上的分布式数据库集群的基础构建过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值