[本文由 Sveta Smirnova 撰写]
像任何优秀的、因此很懒惰的工程师一样,我不喜欢手动启动。通过命令行创建目录、配置文件、指定路径、端口太无聊了。我已经写了在需要启动 MySQL 服务器时如何生存( 此处)。 还有 MySQL Sandbox 可以用于相同的目的。
但是如果你想以这种方式启动 Percona XtraDB Cluster 怎么办呢?幸运的是,在 Percona,我们有工程师为启动 PXC 创建了自动化解决方案。此解决方案使用 Docker。要探索它,您需要:
-
克隆
pxc-docker
存储库:git clone https://github.com/percona/pxc-docker
- 按照 此处 所述安装 Docker Compose
-
cd pxc-docker/docker-bld
-
按照 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 节点集群 - 检查分配给容器的端口:
$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
组