使用以下说明,无法恢复数据库。据我所知,存档不支持 gz 文件,我应该使用 bash 脚本吗?
- name: Restore database
mysql_db:
name: zabbixdb
state: import
target: /usr/share/doc/zabbix-server-mysql-4.0.3/create.sql.gz
when: ansible_distribution == 'CentOS'
- name: Restore database
mysql_db:
name: zabbixdb
state: import
target: /usr/share/doc/zabbix-server-mysql/create.sql.gz
when: ansible_distribution == 'Debian'
结果
fatal: [192.168.1.215]: FAILED! => {"changed": false, "msg": "\ngzip: stdout: Broken pipe\n"}
答案1
这听起来像(截至 2019 年 2 月,已合并)PR 26504 修复 #20196 mysql 密码中出现特殊字符导致管道损坏的问题。
尝试(临时)将 mysql 密码设置为字母数字,避免使用像 这样的 shell 字符作为特殊字符!
。
如果仍然出现错误,在问题任务上设置剧本调试器: debugger: on_failed
。然后dump出mysql命令变量,你可以在shell中手动运行它来查找问题。