为什么我的MySQL导入失败w / Ansible?

时间:2016-04-21 12:56:25

标签: ansible ansible-2.x

我有一个需要从上游刷新数据库的剧本。它正在删除现有数据库,重新创建它,下载最新的生产备份(以.sql.gz格式)并尝试导入它。在最后一步,我明白了:

  

任务[部署:数据库|从上游数据加载数据库] ****************   致命:[54_236_190_225]:失败! => {“已更改”:false,“failed”:true,“msg”:“\ ngzip:stdout:Broken pipe \ n”}

任务:

- name: Database | Load the database from upstream data
  mysql_db:
    state: import
    target: /tmp/catalog-3-19-16.sql.gz
    login_host: "{{ mysql_host }}"
    login_port: "{{ mysql_port }}"
    login_user: "root"
    login_password: "{{ mysql_root_password }}"
    name: "{{ mysql_db }}"

服务器上存在/tmp/catalog-3-19-16.sql.gz文件。

我缺少什么?

2 个答案:

答案 0 :(得分:0)

确保您可以使用凭证通过终端登录,请注意我使用的是默认端口和localhost。

 - name: Importing data
   mysql_db:
     name: "{{ db_name }}"
     login_user: root
     login_host: localhost
     login_password: "{{ mysql_root_password }}"
     config_file: no
     state: import
     target: /tmp/catalog-3-19-16.sql.gz

答案 1 :(得分:0)

嗨,你的剧本很完美。 如果您已手动将数据导入 db 中,然后尝试使用 ansible 进行检查,则会失败。 尝试先删除数据库,然后创建 db 并运行您的导入任务剧本,它将完美运行