mysql - 使用ansible向mysql表中插入数据

标签 mysql ubuntu ansible

应该有一些不错的方法来使用 ansible 来处理 mysql 数据库,例如将数据插入表或在 mysql db 上运行的任何命令。

我知道有一些模块可以创建数据库、管理复制、用户和变量:

  • mysql_db - 从远程主机添加或删除 MySQL 数据库。
  • mysql_replication (E) - 管理 MySQL 复制
  • mysql_user - 在 MySQL 数据库中添加或删除用户。
  • mysql_variables - 管理 MySQL 全局变量

我的用例场景是,我在 ubuntu 上安装了 mysql-server 并成功创建了数据库,现在我必须将数据插入表中,想知道是否有办法实现它通过 ansible。

最佳答案

解决方案一:

我认为您错过了 mysql_db 模块的导入功能。您可以使用 import 作为参数来加载模式和数据,并为其提供一个文件以加载到 target

来自 Ansible 文档的示例:

# Copy database dump file to remote host and restore it to database 'my_db'
- copy: src=dump.sql.bz2 dest=/tmp
- mysql_db: name=my_db state=import target=/tmp/dump.sql.bz2

解决方案 2:

如果 mysql_db 没有提供您需要的所有选项和灵 active ,您可以将 mysql 程序与 shell 结合使用。

- name: Import DB 
  shell: mysql db_name < dump.sql

上面将 dump.sql 文件加载到数据库 db_name 中。有关更多选项,请参阅 mysql 程序手册:man mysql

解决方案 3:

mysqlimport 实用程序与 command 模块:

- name: Import DB 
  command: mysqlimport [options] db_name textfile1 [textfile2 ...]

见:mysqlimport docs

关于mysql - 使用ansible向mysql表中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28188508/

相关文章:

MySQL 社区 - 扩展

php - 在 CodeIgniter 中内爆 Select2 表单中的多个值并插入到数据库

python - 在 ubuntu 中读取带有 pyodbc 错误的 Access 文件 (mdb)

docker - Ansible `docker_container` 选项 `network_mode` 和 `networks` - 它们相交吗?

MySql查询查找不在时间范围之间的记录

c - 为什么我收到错误 undefined reference to `getche' ?

python替换为捕获组

file - 将源文件的内容附加到目标文件

Ansible 版本强制

mysql - 不剥离 + 字符就无法将数据 URI 存储到数据库