MySQL 自定义目录规范

dbbot 支持通过 advanced_config.yml 自定义 MySQL 目录结构。

1. 目录配置入口

文件路径:

/usr/local/dbbot/mysql_ansible/playbooks/advanced_config.yml

典型目录参数示例:

mycnf_dir: "{{ mysql_data_dir_base }}/{{ mysql_port }}/etc"
datadir: "{{ mysql_data_dir_base }}/{{ mysql_port }}/data"
tmpdir: "{{ mysql_data_dir_base }}/{{ mysql_port }}/tmp"
binlog_dir: "{{ mysql_data_dir_base }}/{{ mysql_port }}/log"
relaylog_dir: "{{ mysql_data_dir_base }}/{{ mysql_port }}/log"
redolog_dir: "{{ datadir }}"
socket_dir: "{{ datadir }}"
mysqlx_socket_dir: "{{ datadir }}"
slowlog_dir: "{{ mysql_data_dir_base }}/{{ mysql_port }}/log"
errlog_dir: "{{ mysql_data_dir_base }}/{{ mysql_port }}/log"

2. 修改日志文件名

如果要修改日志文件名(不仅是目录),需要改模板文件:

/usr/local/dbbot/mysql_ansible/roles/mysql_server/templates/8.4/my.cnf.j2

示例:

slow_query_log_file = {{ slowlog_dir }}/slow.log

可改为:slow_query.log

3. 设计说明

  • 目录需要由 dbbot 创建并处理权限。
  • 物理文件通常由 MySQL 初始化时自行创建。
  • 默认布局会把单实例常用目录收敛到 {{ mysql_data_dir_base }}/{{ mysql_port }}/...,便于按实例观察和清理。
  • 建议先在测试环境验证,再用于生产。