gpt4 book ai didi

mysql - Ansible playbook 在尝试执行 mysql 操作时卡住了

转载 作者:行者123 更新时间:2023-11-29 16:08:20 25 4
gpt4 key购买 nike

我正在尝试执行一个简单的“显示数据库;”带有 ansible playbook 的命令,执行命令时会卡住。

我尝试了不同的选择

- hosts: servers
become: true
vars_prompt:
- name: "db_passw"
prompt: "DB root password?"
tasks:
- name: Configure Database
shell: |
mysql -u root -p {{ db_passw }} < ~/sql_query.sql

还有

- hosts: servers
become: true
vars_prompt:
- name: "db_passw"
prompt: "DB root password?"
tasks:
- name: Configure Database
shell: |
mysql -u root -p {{ db_passw }} -e "SHOW DATABASES;"

我也尝试过,只是作为测试,明确输入密码

- hosts: servers
become: true
vars_prompt:
- name: "db_passw"
prompt: "DB root password?"
tasks:
- name: Configure Database
shell: |
mysql -u root -p <root_passw> -e "SHOW DATABASES;"

但它总是卡在同一个点上。我尝试在远程机器 shell 中执行上面的 mysql 命令,它们工作没有问题。我还尝试在 mysql 的命令之前执行其他命令,并且它们正在执行。

ansible和mysql之间有问题吗?

我知道 Ansible 有一个 MySQL 模块,但它的功能太有限。

谢谢

最佳答案

对我有用。下面的玩法

- hosts: dbserver
tasks:
- command: |
mysql -e "SHOW DATABASES;"
register: result
- debug:
var: result

给出:

TASK [debug] 
ok: [dbserver] => {
"result": {
"changed": true,
"cmd": [
"mysql",
"-e",
"SHOW DATABASES;"
],
"delta": "0:00:00.010958",
"end": "2019-04-04 16:19:58.359100",
"failed": false,
"rc": 0,
"start": "2019-04-04 16:19:58.348142",
"stderr": "",
"stderr_lines": [],
"stdout":
...

当“become: true”时不需要指定“-u root”。我还没有为 root 设置 MySQL 密码。

关于mysql - Ansible playbook 在尝试执行 mysql 操作时卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55517825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com