ank*_*agi 10 mysql ubuntu ansible
应该有一些体面的方式来使用mysql数据库使用ansible,如将数据插入表或任何命令以在mysql db上运行.
我知道有创建数据库,管理复制,用户和变量的模块:
mysql_db - 从远程主机添加或删除MySQL数据库.mysql_replication (E) - 管理MySQL复制mysql_user - 从MySQL数据库添加或删除用户.mysql_variables - 管理MySQL全局变量我的用例场景是,我已经mysql-server在ubuntu 上安装并成功创建了数据库,现在我必须将数据插入表中,并想知道是否有办法通过ansible实现它.
Mic*_*sek 24
解决方案1:
我想你错过了mysql_db模块的导入功能.您可以使用importas参数来加载架构和数据,并指定要加载的文件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
Run Code Online (Sandbox Code Playgroud)
解决方案2:
如果mysql_db没有为您提供所需的所有选项和灵活性,您可以mysql结合使用程序shell.
- name: Import DB
shell: mysql db_name < dump.sql
Run Code Online (Sandbox Code Playgroud)
上述载荷dump.sql文件导入到数据库中db_name.有关mysql更多选项,请参阅程序手册:man mysql
解决方案3:
mysqlimportcommand模块实用程序:
- name: Import DB
command: mysqlimport [options] db_name textfile1 [textfile2 ...]
Run Code Online (Sandbox Code Playgroud)
请参阅:mysqlimport docs
你可以使用mysql_db模块.它的state:参数有值present,absent,dump,import.如果设置为import,则可以使用target:参数指示远程主机上要读取的转储文件的位置.支持未压缩的SQL文件(.sql)以及bzip2(.bz2)和gzip(.gz)压缩文件.
# 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18564 次 |
| 最近记录: |