温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在Docker中部署MySQL Galera集群

发布时间:2024-09-03 14:05:59 来源:亿速云 阅读:120 作者:小樊 栏目:MySQL数据库

在Docker中部署MySQL Galera集群需要以下几个步骤:

  1. 准备Docker环境 确保你已经安装了Docker和Docker Compose。如果没有,请参考官方文档进行安装:
  • Docker: https://docs.docker.com/get-docker/
  • Docker Compose: https://docs.docker.com/compose/install/
  1. 创建Docker网络 Galera集群需要在同一个Docker网络中运行。使用以下命令创建一个新的Docker网络:
docker network create galera-network
  1. 获取Galera镜像 从Docker Hub获取官方的Galera镜像:
docker pull kolla/galera-mysql:latest
  1. 创建Docker Compose文件 在你的工作目录中创建一个名为docker-compose.yml的文件,并添加以下内容:
version: '3.8'
services:
  mysql1:
    image: kolla/galera-mysql:latest
    hostname: mysql1
    networks:
      - galera-network
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
      - CLUSTER_NAME=galera
      - XTRABACKUP_PASSWORD=xtrabackup_secret_pw
    command: --wsrep-new-cluster

  mysql2:
    image: kolla/galera-mysql:latest
    hostname: mysql2
    networks:
      - galera-network
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
      - CLUSTER_NAME=galera
      - XTRABACKUP_PASSWORD=xtrabackup_secret_pw

  mysql3:
    image: kolla/galera-mysql:latest
    hostname: mysql3
    networks:
      - galera-network
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
      - CLUSTER_NAME=galera
      - XTRABACKUP_PASSWORD=xtrabackup_secret_pw

networks:
  galera-network:
    external: true

这个配置文件定义了三个MySQL Galera节点,它们将在同一个Docker网络中运行。注意command: --wsrep-new-cluster仅在第一个节点(mysql1)上设置,以初始化集群。

  1. 启动Galera集群 在包含docker-compose.yml文件的目录中运行以下命令:
docker-compose up -d

这将启动三个MySQL Galera节点。

  1. 测试Galera集群 你可以使用MySQL客户端连接到任何一个节点,并在其中一个节点上执行写操作,然后在另一个节点上执行读操作,以验证数据是否在所有节点之间同步。例如:
mysql -h 127.0.0.1 -P 3306 -u root -pmy-secret-pw

在一个节点上创建一个数据库:

CREATE DATABASE testdb;

然后在另一个节点上查询该数据库:

SHOW DATABASES;

如果看到testdb,则说明Galera集群正常工作。

现在你已经成功在Docker中部署了MySQL Galera集群。你可以根据需要调整Docker Compose文件中的配置,例如更改节点数量、设置持久化存储等。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI