community.mysql.mysql_info – Gather information about MySQL servers
This plugin is part of the community.mysql collection (version 2.1.1).
To install it use:
ansible-galaxy collection install community.mysql.
To use it in a playbook, specify:
The below requirements are needed on the host that executes this module.
PyMySQL (Python 2.7 and Python 3.X), or
MySQLdb (Python 2.x)
Calculating the size of a database might be slow, depending on the number and size of tables in it. To avoid this, use exclude_fields=db_size.
Requires the PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) package installed on the remote host. The Python package may be installed with apt-get install python-pymysql (Ubuntu; see ansible.builtin.apt) or yum install python2-PyMySQL (RHEL/CentOS/Fedora; see ansible.builtin.yum). You can also use dnf install python2-PyMySQL for newer versions of Fedora; see ansible.builtin.dnf.
Be sure you have PyMySQL or MySQLdb library installed on the target machine for the Python interpreter Ansible uses, for example, if it is Python 3, you must install the library for Python 3. You can also change the interpreter. For more information, see https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html.
login_userare 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.
If there are problems with local connections, using login_unix_socket=/path/to/mysqld/socket instead of login_host=localhost might help. As an example, the default MariaDB installation of version 10.4 and later uses the unix_socket authentication plugin by default that without using login_unix_socket=/var/run/mysqld/mysqld.sock (the default path) causes the error
Host '127.0.0.1' is not allowed to connect to this MariaDB server.
Alternatively, you can use the mysqlclient library instead of MySQL-python (MySQLdb) which supports both Python 2.X and Python >=3.5. See https://pypi.org/project/mysqlclient/ how to install it.
The official documentation on the community.mysql.mysql_variables module.
The official documentation on the community.mysql.mysql_db module.
The official documentation on the community.mysql.mysql_user module.
The official documentation on the community.mysql.mysql_replication module.
# Display info from mysql-hosts group (using creds from ~/.my.cnf to connect): # ansible mysql-hosts -m mysql_info # Display only databases and users info: # ansible mysql-hosts -m mysql_info -a 'filter=databases,users' # Display only slave status: # ansible standby -m mysql_info -a 'filter=slave_status' # Display all info from databases group except settings: # ansible databases -m mysql_info -a 'filter=!settings' - name: Collect all possible information using passwordless root access community.mysql.mysql_info: login_user: root - name: Get MySQL version with non-default credentials community.mysql.mysql_info: login_user: mysuperuser login_password: mysuperpass filter: version - name: Collect all info except settings and users by root community.mysql.mysql_info: login_user: root login_password: rootpass filter: "!settings,!users" - name: Collect info about databases and version using ~/.my.cnf as a credential file become: yes community.mysql.mysql_info: filter: - databases - version - name: Collect info about databases and version using ~alice/.my.cnf as a credential file become: yes community.mysql.mysql_info: config_file: /home/alice/.my.cnf filter: - databases - version - name: Collect info about databases including empty and excluding their sizes become: yes community.mysql.mysql_info: config_file: /home/alice/.my.cnf filter: - databases exclude_fields: db_size return_empty_dbs: yes
Common return values are documented here, the following are the fields unique to this module: