mysql - 使用 Ansible 导入 MySQL 转储

标签 mysql powershell ansible openstack azure-powershell

所以我尝试在 Windows 机器上使用 Ansible 导入包含两个数据库的 MySQL 转储。 Ansible 剧本应该是正确的。

- hosts: win
  gather_facts: no
  tasks:
  - name: Import DB
    win_command: 'mysql -uroot -p12345678910 -hlocalhost < "C:\sql\dump.sql"'
    args:
      chdir: C:\Program Files\MySQL\MySQL Server 5.6\bin\

在 Windows 盒子上,如果我打开 CMD 并运行 cd C:\Program Files\MySQL\MySQL Server 5.6\bin\ 然后 'mysql -uroot -p12345678910 -hlocalhost < "C:\sql\dump.sql"' 它工作完美。

我遇到了一个巨大的错误。我做错了什么?

我能够使用非常相似的 Playbook 检查数据库:

- hosts: win
  gather_facts: no
  tasks:
  - name: Check DB
    win_command: 'mysql -uroot -p12345678910  -e "SHOW DATABASES;"'
    args:
      chdir: C:\Program Files\MySQL\MySQL Server 5.6\bin\

最佳答案

问题可能是输入重定向。也许你可以尝试这样的事情:

win_command: 'Get-Content C:\sql\dump.sql | mysql -uroot -p12345678910 -hlocalhost'

参见 Redirecting standard input\output in Windows PowerShell

关于mysql - 使用 Ansible 导入 MySQL 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54327646/

相关文章:

mysql - 使用随机因素更频繁地显示更多喜欢的项目而不是不太喜欢的项目的公式

php - 从隐藏的输入中获取值(value)

python - Django 和 MySQL - 无法打开数据库文件

powershell - 在Powershell中用缩进和换行符替换字符

powershell - 使用 UFormat 获取 unix 时间

linux - 如何在 'when'模块中包含特殊字符?

node.js - 从 Vagrant 获取主机 IP 并将其与 Ansible 一起使用

php - PHP 代码或 CSV 文件缺少什么?

powershell - 构造一个自定义对象,其属性将按定义顺序枚举

substring - Jinja2模板中的条件子字符串