Ansible 2.7 - mysql_db:ngzip:stdout:管道损坏

Ansible 2.7 - mysql_db:ngzip:stdout:管道损坏

使用以下说明,无法恢复数据库。据我所知,存档不支持 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中手动运行它来查找问题。

相关内容