首页 > 技术文章 > Ansible 从远程主机添加或删除MySQL数据库

mhc-fly 2017-06-26 22:11 原文

mysql_db - 从远程主机添加或删除MySQL数据库。

概要

  • 从远程主机添加或删除MySQL数据库。

要求(在执行模块的主机上)

  • MySQLdb的
  • mysql(命令行二进制)
  • mysqldump(命令行二进制)

选项

参数需要默认选择注释
collation
 
no    
整理模式(排序)。这仅适用于新的表/数据库,并且不更新现有的表,这是MySQL的限制。
CONFIG_FILE
(2.0中加入)
no 〜/ .my.cnf  
指定要从中读取用户和密码的配置文件。
connect_timeout
(2.1中加入)
no 30  
连接到MySQL服务器时的连接超时。
encoding
 
no    
使用编码模式,示例包括utf8latin1_swedish_ci
login_host
 
no localhost  
主机运行数据库。
login_password
 
no    
用于验证的密码。
login_port
 
no 3306  
MySQL服务器端口。如果使用login_port,则需要将login_host定义为其他本地主机。
login_unix_socket
 
no    
到本地连接的Unix域套接字的路径。
login_user
 
no    
用于验证的用户名。
name
 
yes    
要添加或删除的数据库的名称
name = all仅当状态dump时才可用import
如果name = all就像mysqldump的--all-databases选项一样工作(在2.0中添加)

别名:db
 
quick
(2.1加入)
no True  
用于转储大表的选项
single_transaction
(2.1加入)
no    
在单个事务中执行转储
ssl_ca
(2.0加入)
no    
证书颁发机构(CA)证书的路径。此选项(如果使用)必须指定与服务器使用的相同的证书。
ssl_cert
(2.0加入)
no    
客户端公钥证书的路径。
ssl_key
(2.0加入)
no    
客户端私钥的路径。
state
 
no present
  • present
  • absent
  • dump
  • import
数据库状态
target
 
no    
在远程主机上的位置,转储文件的读取或写入。支持未压缩的SQL文件(.sql)以及bzip2(.bz2),gzip(.gz)和xz(2.0中添加)压缩文件。

例子

- name: Create a new database with name 'bobdata'
  mysql_db:
    name: bobdata
    state: present

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

- name: Dump all databases to hostname.sql
  mysql_db:
    state: dump
    name: all
    target: /tmp/{{ inventory_hostname }}.sql

- name: Import file.sql similar to mysql -u <username> -p <password> < hostname.sql
  mysql_db:
    state: import
    name: all
    target: /tmp/{{ inventory_hostname }}.sql

注意

  • 需要远程主机上的python-mysqldb包,以及mysql和mysqldump二进制文件。
  • 需要远程主机上的MySQLdb Python包。对于Ubuntu,这和apt-get install python-mysqldb一样简单。(请参阅apt。)对于CentOS / Fedora,这与yum安装MySQL-python一样简单。(见yum。)
  • 无论login_passwordlogin_user你逝去的凭据是必需的。如果不存在,则模块将尝试从中读取凭据~/.my.cnf,最后回到使用MySQL默认登录的“root”,没有密码。

状态

该模块被标记为预览,这意味着它不能保证具有向后兼容的界面。

支持

这个模块是没有核心提交者监督的社区维护的。

有关这是什么意思的更多信息,请阅读模块支持

为了帮助开发模块,如果您有这样的倾向,请阅读社区信息和贡献测试可编程开发模块

推荐阅读