Documentation

mysql_db - Add or remove MySQL databases from a remote host.

Synopsis

Add or remove MySQL databases from a remote host.

Requirements (on host that executes module)

  • MySQLdb
  • mysql (command line binary)
  • mysqldump (command line binary)

Options

parameter required default choices comments
collation
no
    Collation mode (sorting). This only applies to new table/databases and does not update existing ones, this is a limitation of MySQL.
    config_file
    (added in 2.0)
    no ~/.my.cnf
      Specify a config file from which user and password are to be read
      connect_timeout
      (added in 2.1)
      no 30
        The connection timeout when connecting to the MySQL server.
        encoding
        no
          Encoding mode
          login_host
          no localhost
            Host running the database
            login_password
            no
              The password used to authenticate with
              login_port
              no 3306
                Port of the MySQL server. Requires login_host be defined as other then localhost if login_port is used
                login_unix_socket
                no
                  The path to a Unix domain socket for local connections
                  login_user
                  no
                    The username used to authenticate with
                    name
                    yes
                      name of the database to add or remove
                      name=all May only be provided if state is dump or import.
                      if name=all Works like --all-databases option for mysqldump (Added in 2.0)

                      aliases: db
                      quick
                      (added in 2.1)
                      no
                        Option used for dumping large tables
                        single_transaction
                        (added in 2.1)
                        no
                          Execute the dump in a single transaction
                          ssl_ca
                          (added in 2.0)
                          no
                            The path to a Certificate Authority (CA) certificate. This option, if used, must specify the same certificate as used by the server.
                            ssl_cert
                            (added in 2.0)
                            no
                              The path to a client public key certificate.
                              ssl_key
                              (added in 2.0)
                              no
                                The path to the client private key.
                                state
                                no present
                                • present
                                • absent
                                • dump
                                • import
                                The database state
                                target
                                no
                                  Location, on the remote host, of the dump file to read from or write to. Uncompressed SQL files (.sql) as well as bzip2 (.bz2), gzip (.gz) and xz (Added in 2.0) compressed files are supported.

                                  Examples

                                  # 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'
                                  - copy: src=dump.sql.bz2 dest=/tmp
                                  - mysql_db: name=my_db state=import target=/tmp/dump.sql.bz2
                                  
                                  # Dumps all databases to hostname.sql
                                  - mysql_db: state=dump name=all target=/tmp/{{ inventory_hostname }}.sql
                                  
                                  # Imports file.sql similiar to mysql -u <username> -p <password> < hostname.sql
                                  - mysql_db: state=import name=all target=/tmp/{{ inventory_hostname }}.sql
                                  

                                  Notes

                                  Note

                                  Requires the python-mysqldb package on the remote host, as well as mysql and mysqldump binaries.

                                  Note

                                  Requires the MySQLdb Python package on the remote host. For Ubuntu, this is as easy as apt-get install python-mysqldb. (See apt.) For CentOS/Fedora, this is as easy as yum install MySQL-python. (See yum.)

                                  Note

                                  Both login_password and login_user are required when you are passing credentials. If none are present, the module will attempt to read the credentials from ~/.my.cnf, and finally fall back to using the MySQL default login of ‘root’ with no password.

                                  This is a Core Module

                                  For more information on what this means please read Core Modules

                                  For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Helping Testing PRs and Developing Modules.