为什么我的MySQL导入失败w/Ansible?
我有一个剧本,需要从上游刷新数据库。它正在删除现有数据库,重新创建它,下载最新的生产备份(以为什么我的MySQL导入失败w/Ansible?,ansible,ansible-2.x,Ansible,Ansible 2.x,我有一个剧本,需要从上游刷新数据库。它正在删除现有数据库,重新创建它,下载最新的生产备份(以.sql.gz格式)并尝试导入它。在最后一步中,我得到以下信息: 任务[部署:数据库|从上游数据加载数据库]**************** 致命:[54_236_190_225]:失败!=>{“更改”:false,“失败”:true,“msg”:“\ngzip:stdout:breaked pipe\n”} 任务: - name: Database | Load the database from up
.sql.gz
格式)并尝试导入它。在最后一步中,我得到以下信息:
任务[部署:数据库|从上游数据加载数据库]****************
致命:[54_236_190_225]:失败!=>{“更改”:false,“失败”:true,“msg”:“\ngzip:stdout:breaked 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
文件
我缺少什么?请确保您可以使用凭据通过终端登录,注意我使用的是默认端口和本地主机
- 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
嗨,你的剧本太完美了。 如果您在db中手动导入数据,然后尝试使用ansible进行检查,则会失败。
尝试先删除数据库,然后创建数据库并运行导入任务playbook,它将完美运行“断管”消息意味着mysql无法读取输入。两个选择1)gunzip-c | mysql如果模块2中的一种bug能够正常工作,那么shell就不能正常工作,因为您的转储文件有问题。好吧,它可以从命令行工作,所以……呃。如果我理解正确,会有更改。也许你应该更新ansible。请尝试在提取文件之前或使用bzip2:archives
。bz2
还要查看ssh超时-这可能导致管道破裂,请在ssh配置中检查您的ServerAliveInterval