You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用geerlingguy.mysql Ansible角色时遇MySQL服务找不到错误求助

解决Ansible geerlingguy.mysql角色服务找不到的问题

问题根源

目标主机(Ubuntu系统)上的MySQL/MariaDB服务名称与角色默认的mysql不匹配,导致Ansible无法定位服务。Ubuntu部分版本中,MySQL服务可能以mariadb为名运行。

解决方法

1. 确认目标主机的实际服务名

在30.10.1.7上执行命令,找出当前运行的数据库服务名:

systemctl list-units --type=service | grep -E 'mysql|mariadb'

输出会显示类似mysql.service或mariadb.service的结果,提取服务名(去掉.service后缀)。

2. 在变量配置中指定服务名

修改vars/database.yaml,添加mysql_service_name变量,值为上一步得到的服务名:

mysql_databases:
  - name: db01
    encoding: utf8mb4
    collation: utf8mb4_unicode_ci
mysql_users:
  - name: linuxhint
    host: "%"
    password: secret
    priv: "db01.*:ALL"
# 显式指定数据库服务名
mysql_service_name: "mariadb"  # 替换为实际服务名,如mysql或mariadb

3. 重新执行检查命令

运行原命令验证修复效果:

ansible-playbook -i hosts playbooks/install_database.yaml -e ansible_python_interpreter=/usr/bin/python3 --check

补充说明

geerlingguy.mysql角色通常会自动适配不同系统的服务名,但自定义安装或特殊环境下可能检测失效,显式指定mysql_service_name即可强制角色使用正确的服务名。

内容的提问来源于stack exchange,提问作者Gary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:43:13