MySQL 目录结构和配置文件原理

本文面向首次使用 dbbot 的用户,帮助快速理解 mysql_ansible 的目录结构、配置入口和执行逻辑。

如果你正在查阅 dbbot 仓的总览结构,请先看:dbbot 仓目录结构与组件说明

1. 顶层目录

典型安装路径:

/usr/local/dbbot/mysql_ansible

关键目录:

  • downloads/:数据库安装包目录。
  • inventory/:目标主机清单。
  • playbooks/:剧本与参数入口。
  • roles/:具体任务实现。

2. mysql_ansible 结构

mysql_ansible/
├── downloads/
├── inventory/
│   └── hosts.ini
├── playbooks/
│   ├── common_config.yml
│   ├── advanced_config.yml
│   ├── single_node.yml
│   ├── master_slave.yml
│   ├── mha.yml
│   ├── mgr.yml
│   ├── backup_script.yml
│   ├── backup_script_8.4.yml
│   ├── restore_pitr_8.4.yml
│   ├── install_xtrabackup.yml
│   └── install_mysqlshell.yml
└── roles/

3. 配置文件职责

3.1 inventory/hosts.ini

用于定义目标主机和连接参数。默认测试环境可先写成:

[dbbot_mysql]
192.0.2.131 ansible_user=root ansible_ssh_pass="'<your_ssh_password>'"
192.0.2.132 ansible_user=root ansible_ssh_pass="'<your_ssh_password>'"
192.0.2.133 ansible_user=root ansible_ssh_pass="'<your_ssh_password>'"

3.2 playbooks/common_config.yml

通用参数入口,典型需调整项:

  • mysql_version
  • mysql_port
  • mysql_data_dir_base
  • mysql_admin_user
  • mysql_admin_password
  • fcs_allow_dbbot_default_passwd

说明:

  • 开源默认密码遵循 Dbbot_<user>@8888 / Dbbot_<linux_user>@9999 规律,便于实验环境快速起库。
  • 默认 fcs_allow_dbbot_default_passwd: false,因此如果仍使用这些公开默认密码,playbook 会在 pre_tasks 阶段直接拦截。
  • 只有明确知道自己在做什么时,才建议在实验环境显式设置 fcs_allow_dbbot_default_passwd: true

3.3 playbooks/vars/var_xxx.yml

剧本专有参数,用于覆盖通用参数,例如主从拓扑、MHA、MGR、备份恢复等专用字段。

3.4 playbooks/advanced_config.yml

高阶目录与路径定制入口,普通场景建议保持默认。

4. 执行前连通性检查

cd /usr/local/dbbot/mysql_ansible/playbooks
ansible dbbot_mysql -m ping

若全部返回 pong,可继续执行部署。

5. 运行原理(简化)

每个 Playbook 通常分三段:

  1. pre_tasks:参数校验、确认提示。
  2. roles:核心部署逻辑。
  3. post_tasks:收尾与标记。

6. 实践建议

  • 优先修改:hosts.inicommon_config.ymlvars/var_xxx.yml
  • 高阶目录改造请先在测试环境验证。
  • 对高危剧本务必确认目标主机范围。