在 Docker 中使用 Percona XtraDB 集群

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

[本文由 Sveta Smirnova 撰写]

像任何优秀的、因此很懒惰的工程师一样,我不喜欢手动启动。通过命令行创建目录、配置文件、指定路径、端口太无聊了。我已经写了在需要启动 MySQL 服务器时如何生存( 此处)。 还有 MySQL Sandbox 可以用于相同的目的。

但是如果你想以这种方式启动 Percona XtraDB Cluster 怎么办呢?幸运的是,在 Percona,我们有工程师为启动 PXC 创建了自动化解决方案。此解决方案使用 Docker。要探索它,您需要:

  1. 克隆 pxc-docker 存储库: git clone https://github.com/percona/pxc-docker
  2. 按照 此处 所述安装 Docker Compose
  3. cd pxc-docker/docker-bld
  4. 按照 README 文件中的说明进行操作:

    a) ./docker-gen.sh 5.6 docker-gen.sh 将 PXC 分支作为参数,默认为 5.6,它会在 github.com/percona/percona-xtradb-cluster 上查找)

    b) 可选: docker-compose build (如果您看到它没有随着更改而更新)。

    c) docker-compose scale bootstrap=1 members=2 对于 3 节点集群

  5. 检查分配给容器的端口:
 $docker port dockerbld_bootstrap_1 3306 0.0.0.0:32768 $docker port dockerbld_members_1 4567 0.0.0.0:32772 $docker port dockerbld_members_2 4568 0.0.0.0:32776

现在您可以像往常一样连接到 MySQL 客户端:

 $mysql -h 0.0.0.0 -P 32768 -uroot Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 10 Server version: 5.6.21-70.1 MySQL Community Server (GPL), wsrep_25.8.rXXXX Copyright (c) 2009-2015 Percona LLC and/or its affiliates Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>

6. 要更改 MySQL 选项,要么在运行时将其作为挂载通过 volume: /tmp/my.cnf:/etc/my.cnf in docker-compose.yml 或连接到容器的 bash ( docker exec -i -t container_name /bin/bash ),然后更改 my.cnf 并运行 docker restart container_name

笔记。

  • 如果您不想构建 使用现成的图像
  • 如果您不想以 root 用户身份运行 Docker Compose,请将自己添加到 docker