在 Docker 中使用 Percona XtraDB 集群

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

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

[本文由 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

相关文章