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 to use, examples include utf8 or latin1_swedish_ci
          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 True
                        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

                                  - 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
                                  

                                  Notes

                                  Note

                                  • Requires the python-mysqldb package on the remote host, as well as mysql and mysqldump binaries.
                                  • 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.)
                                  • 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.

                                  Status

                                  This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

                                  Support

                                  This module is community maintained without core committer oversight.

                                  For more information on what this means please read Module Support

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