应该有一些体面的方式使用 ansible 来处理 mysql 数据库,例如将数据插入表中或在 mysql db 上运行任何命令.
我知道有一些模块可以创建数据库、管理复制、用户和变量:
mysql_db - 从远程主机添加或删除 MySQL 数据库.mysql_replication (E) - 管理 MySQL 复制mysql_user - 从 MySQL 数据库中添加或删除用户.mysql_variables - 管理 MySQL 全局变量我的用例场景是,我已经在 ubuntu 上安装了 mysql-server 并成功创建了数据库,现在我必须将数据插入表中并想知道是否有办法实现它通过 ansible.
解决方案 1:
我认为您错过了 mysql_db 模块的导入功能.您可以使用 import 作为参数来加载架构和数据,并为其提供一个文件以在 target
来自 Ansible 文档的示例:
#将数据库转储文件复制到远程主机并恢复到数据库'my_db'- 复制:src=dump.sql.bz2 dest=/tmp- mysql_db: name=my_db state=import target=/tmp/dump.sql.bz2解决方案 2:
如果 mysql_db 没有为您提供所需的所有选项和灵活性,您可以将 mysql 程序与 shell 结合使用.
- 名称:导入数据库外壳:mysql db_name <转储文件以上将dump.sql 文件加载到数据库db_name 中.更多选项参见 mysql 程序手册:man mysql>
解决方案 3:
mysqlimport 实用程序与 command 模块:
- 名称:导入数据库命令:mysqlimport [选项] db_name textfile1 [textfile2 ...]参见:mysqlimport 文档
There should be some decent way to work with mysql databases using ansible like inserting data into tables or any command to run on mysql db.
I know there are modules to create db, manage replications, user and variables:
mysql_db - Add or remove MySQL databases from a remote host.mysql_replication (E) - Manage MySQL replicationmysql_user - Adds or removes a user from a MySQL database.mysql_variables - Manage MySQL global variablesMy use case scenario is, I've installed mysql-server on ubuntu and created the database successfully and now I have to insert data into the tables and wondering if there is a way to achieve it via ansible.
Solution 1:
I think you missed import functionality of mysql_db module. You can load both schema and data with it using import as parameter to state and giving it a file to load in target
Example from Ansible docs:
# 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
Solution 2:
If mysql_db does not give you all options that you need and flexibility you can just use mysql program in combination with shell.
- name: Import DB
shell: mysql db_name < dump.sql
Above loads dump.sql file into database db_name. See mysql program manual for more options: man mysql
Solution 3:
mysqlimport utility with command module:
- name: Import DB
command: mysqlimport [options] db_name textfile1 [textfile2 ...]
See: mysqlimport docs
这篇关于使用ansible将数据插入mysql表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
获取所有产品、类别和元数据的 SQL 查询 woocommSQL query to get all products, categories and meta data woocommerce/wordpress(获取所有产品、类别和元数据的 SQL 查询 woocommerce/wordpre
如何在 WSL(Linux 的 Windows 子系统)中使用 MySQL?How to use MySQL in WSL (Windows Subsystem for Linux)?(如何在 WSL(Linux 的 Windows 子系统)中使用 MySQL?)
任务计划程序中的 PowerShell MySQL 备份脚本错误 PowerShell MySQL Backup Script Error in Task Scheduler 0x00041301(任务计划程序中的 PowerShell MySQL 备份脚本错误 0x00041301)
将数据从 XML 文件导入 MySQL 数据库Import the data from the XML files into a MySQL database(将数据从 XML 文件导入 MySQL 数据库)
在 Windows 7 32 位上安装 Xampp.启动时的错误installed Xampp on Windows 7 32-bit. Errors when starting(在 Windows 7 32 位上安装 Xampp.启动时的错误)
Windows xampp 上的 Mysql 小写表Mysql lower case table on Windows xampp(Windows xampp 上的 Mysql 小写表)