gpt4 book ai didi

mysql - 使用 Ansible mysql_db 模块生成的 sql 转储文件中的数据库特异性

转载 作者:行者123 更新时间:2023-12-04 04:21:24 25 4
gpt4 key购买 nike

我正在使用 Ansible mysql_db 模块在远程服务器上创建数据库的 sql 转储文件。然后我下载这个转储文件以导入到具有不同名称的本地数据库中。

我的问题是 mysql_db 模块创建的转储文件以 CREATE DATABASEUSE 命令为前缀。例如:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `remote_db_name` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `remote_db_name`;

这会导致问题,因为当我尝试将此转储导入我的本地数据库(具有不同的名称)时,它会在本地创建一个全新的数据库并导入到该数据库中。

是否有任何选项可以传递给 Ansible mysql_db 模块以防止它向转储文件添加 CREATE DATABASE 和 USE 命令?

这是我的 Ansible 剧本中创建 sql 转储文件的行:

mysql_db: state=dump name={{ db_name }} login_user={{ db_user }} login_password={{ db_password }} target=/var/www/{{ domain_name }}/db_backups/{{ db_name }}_{{ dumpdate }}.sql

远程服务器正在运行 Ubuntu 18.04 和 MySQL Ver 14.14 Distrib 5.7.28(如果有任何不同的话)。

最佳答案

根据 OP 的要求将评论转换为答案


您可以将一个选项传递给 mysqldump(即 --no-create-db),但是 ansible module好像不支持。

因此,在撰写此答案时(2019 年 12 月 6 日),您需要:

  1. 投票给进化票(如果它已经存在)或在 github 项目上创建一个
  2. 自己在 github 项目上创建拉取请求以将选项添加到模块
  3. 通过调用 mysqldump 完全按照您的需要创建转储你自己通过 commandshell

关于mysql - 使用 Ansible mysql_db 模块生成的 sql 转储文件中的数据库特异性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com