vitess/vtctlvitess/vtctl 是 Vitess 数据库编排系统的核心控制工具镜像,用于管理和操作 Vitess 集群。Vitess 是一个开源的分布式 MySQL 解决方案,旨在提供高可用性、可扩展性和简化的数据库管理,而 vtctl 作为其控制平面工具,允许管理员执行集群配置、schema 变更、分片管理等关键操作。
vtctl 工具通过命令行方式运行,需连接到 Vitess 集群的拓扑服务(如 ZooKeeper 或 etcd)以获取集群元数据。Docker 环境下的基本使用命令格式如下:
bashdocker run --rm vitess/vtctl vtctlclient --topo_implementation=<拓扑类型> --topo_global_server_address=<拓扑服务地址> <命令> [参数]
查看集群 keyspace 列表:
bashdocker run --rm vitess/vtctl vtctlclient --topo_implementation=zk --topo_global_server_address=zk:2181 GetKeyspaces
创建新的 keyspace:
bashdocker run --rm vitess/vtctl vtctlclient --topo_implementation=zk --topo_global_server_address=zk:2181 CreateKeyspace --sharding_column=id mykeyspace
执行 schema 变更(创建表):
bashdocker run --rm vitess/vtctl vtctlclient --topo_implementation=zk --topo_global_server_address=zk:2181 ApplySchema --sql="CREATE TABLE users (id INT, name VARCHAR(255), PRIMARY KEY (id))" mykeyspace
| 参数 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
| --topo_implementation | 拓扑服务类型(如 zk 或 etcd) | 是 | 无 |
| --topo_global_server_address | 拓扑服务地址(如 zk:2181 或 etcd:2379) | 是 | 无 |
| --topo_global_root | 拓扑服务中的根路径 | 否 | /vitess/global |
通过环境变量可简化命令行参数传递,常用变量如下:
TOPO_IMPLEMENTATION:对应 --topo_implementationTOPO_GLOBAL_SERVER_ADDRESS:对应 --topo_global_server_addressTOPO_GLOBAL_ROOT:对应 --topo_global_root示例:
bashdocker run --rm \ -e TOPO_IMPLEMENTATION=zk \ -e TOPO_GLOBAL_SERVER_ADDRESS=zk:2181 \ vitess/vtctl vtctlclient GetKeyspaces
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务