demo/mysql
原生 MySQL 8.4 试点模板:单节点实例与三节点 InnoDB Cluster
demo/mysql 是原生 MySQL 8.4 LTS 试点模块的四节点示例,与 conf/mysql.yml 中通过 OpenHalo 提供 MySQL 协议兼容的 PostgreSQL 内核不是同一实现。
配置概览
- 配置名称:
demo/mysql - 节点数量:4 个
my-meta:单节点 MySQL 8.4my-test:三节点、单主模式 InnoDB Cluster,每个成员运行 MySQL Router- 模块状态:MYSQL PILOT,不计入正式模块数量
- 平台边界:支持声明的 x86_64 RPM/DEB 平台及 EL9/EL10 aarch64;Oracle APT 当前没有 arm64 组件,因此 Debian/Ubuntu ARM 会被前置检查拒绝
模板中的所有 CHANGE_ME 值必须替换,且真实部署需要明确审批。先做只读预检:
ansible-playbook -i conf/demo/mysql.yml mysql.yml -l my-meta --check
ansible-playbook -i conf/demo/mysql.yml mysql.yml -l my-test --check
确认要写入活动清单后,再执行 ./configure -c demo/mysql,并对相同的完整集群范围依次运行 node.yml 与 mysql.yml 的 --check 和真实收敛。三节点集群不接受部分成员范围。
配置内容
源文件地址:pigsty/conf/demo/mysql.yml
---
#==============================================================#
# File : mysql.yml
# Desc : MySQL 8.4 LTS standalone and three-node HA template
# Ctime : 2026-07-16
# Mtime : 2026-07-19
# Docs : https://pigsty.io/docs/pilot/mysql
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
# Copyright : 2018-2026 Ruohang Feng / Vonng (rh@vonng.com)
#==============================================================#
# Canonical four-node MySQL platform example:
# my-meta: one standalone member
# my-test: three-member InnoDB Cluster in single-primary mode
#
# This file is a template, not the active deployment inventory. Replace every
# CHANGE_ME value and review the target addresses before configure or playbooks;
# MySQL preflight rejects any canonical CHANGE_ME credential left in place.
# Native Oracle 8.4 packages are admitted on x86_64 and EL9/EL10 aarch64. Oracle's
# APT repository currently has no arm64 component, so Ubuntu/Debian ARM is rejected.
#
# Read-only template preview (does not rewrite active pigsty.yml):
# ansible-playbook -i conf/demo/mysql.yml mysql.yml -l my-meta --check
# ansible-playbook -i conf/demo/mysql.yml mysql.yml -l my-test --check
# Each limit must include every declared member of the selected cluster group;
# partial HA member limits are rejected before any package or service change.
# After explicit approval to update active inventory, run ./configure -c demo/mysql,
# then repeat node.yml/mysql.yml --check with the same explicit limits.
# node.yml owns the shared trusted CA at /etc/pki/ca.crt; mysql.yml installs
# only MySQL/Router leaf certificates and requires node_ca to be complete.
#
# Real playbooks install/start services and require explicit approval.
all:
children:
infra:
hosts:
10.10.10.10: { infra_seq: 1 }
my-meta:
hosts:
10.10.10.10: { mysql_seq: 1 }
vars: { mysql_cluster: my-meta, node_cluster: my-meta }
my-test:
hosts:
10.10.10.11: { mysql_seq: 1 }
10.10.10.12: { mysql_seq: 2 }
10.10.10.13: { mysql_seq: 3 }
vars: { mysql_cluster: my-test, node_cluster: my-test }
vars:
version: v4.5.0
admin_ip: 10.10.10.10
region: default # default | china; china uses USTC for MySQL
repo_enabled: false # use signed upstream repositories directly
node_repo_modules: node,infra,mysql
# For a Pigsty local/offline repository, enable repo and cache the complete
# atomic platform set before provisioning targets:
# repo_enabled: true
# repo_extra_packages: [mysql]
nodename_overwrite: false
node_tune: oltp
mysql_root_password: CHANGE_ME_MYSQL_ROOT
mysql_monitor_password: CHANGE_ME_MYSQL_MONITOR
mysql_cluster_password: CHANGE_ME_MYSQL_CLUSTER
# Fixed MySQL 8.4, auto-tuned memory, daily local backup, and exporter are defaults.
# Pigsty infrastructure credentials; replace before deployment.
grafana_admin_password: CHANGE_ME_GRAFANA_ADMIN
grafana_view_password: CHANGE_ME_GRAFANA_VIEW
haproxy_admin_password: CHANGE_ME_HAPROXY
...
配置解读
- MySQL 服务端、客户端、Shell、Router 与 XtraBackup 固定为 8.4 平台,不提供任意版本安装器。
- 单节点使用
3306;三节点还使用 Group Replication33061,并在每个成员提供 Router RW6446与 RO6447。 - 默认启用每天一次的本地全量 XtraBackup 与
mysqld_exporter;当前试点不提供连续 binlog 归档、PITR 或自动恢复。 node.yml负责安装共享信任锚/etc/pki/ca.crt;MySQL 角色只签发并安装叶子证书。
完整约束与移除确认流程参见 原生 MySQL 试点文档。