我有一个需要从上游刷新数据库的剧本。它正在删除现有数据库,重新创建它,下载最新的生产备份(以.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
文件。
我缺少什么?
答案 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 并运行您的导入任务剧本,它将完美运行