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

如何使用Ansible获取数据库表记录?附报错及Playbook排查

解决Ansible获取数据库表记录时的"missing required arguments: name"报错

问题原因

你使用的community.mysql.mysql_db模块核心用途是数据库的创建、删除、导入导出等管理操作,执行SQL查询并非它的设计目标。该模块执行任何操作时都必须指定name参数(用于定位目标数据库),即便你配置了login_db也无法替代——login_db仅定义登录时默认连接的数据库,而非模块操作的目标库。

更合理的选择是使用专门用于执行SQL查询的community.mysql.mysql_query模块,它不需要name参数,专门适配SELECT这类查询场景。

修正后的Playbook

- name: Access MariaDB in Docker Container
  hosts: localhost
  connection: local
  tasks:
    - name: Execute SQL query
      community.mysql.mysql_query:
        login_user: "{{ login_user }}"
        login_password: "{{ login_password }}"
        login_host: "{{ login_host }}"
        login_db: "{{ login_db }}"
        query: "{{ query }}"
      register: sql_result

    - name: Display SQL result
      debug:
        var: sql_result

额外说明

  • 若执意使用mysql_db模块执行查询(不推荐),需补充name: "{{ login_db }}"参数,但该模块返回的结果格式远不如mysql_query清晰,且不符合模块设计初衷。
  • 确保已安装community.mysql集合:执行ansible-galaxy collection install community.mysql即可完成安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:22:10