# mysql_variables – Manage MySQL global variables

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Status

## Synopsis

- Query / Set MySQL variables.

## Requirements

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)

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
ca_cert path |  | The path to a Certificate Authority (CA) certificate. This option, if used, must specify the same certificate as used by the server. aliases: ssl_ca
client_cert path |  | The path to a client public key certificate. aliases: ssl_cert
client_key path |  | The path to the client private key. aliases: ssl_key
config_file path | Default: "~/.my.cnf" | Specify a config file from which user and password are to be read.
connect_timeout integer | Default: 30 | The connection timeout when connecting to the MySQL server.
login_host string | Default: "localhost" | Host running the database.
login_password string |  | The password used to authenticate with.
login_port integer | Default: 3306 | Port of the MySQL server. Requires login_host be defined as other than localhost if login_port is used.
login_unix_socket string |  | The path to a Unix domain socket for local connections.
login_user string |  | The username used to authenticate with.
value string |  | If set, then sets variable value to this
variable string / required |  | Variable name to operate

## Notes

Note

- Requires the PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) package on the remote host. The Python package may be installed with apt-get install python-pymysql (Ubuntu; see apt) or yum install python2-PyMySQL (RHEL/CentOS/Fedora; see yum). You can also use dnf install python2-PyMySQL for newer versions of Fedora; see dnf.
- 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.

## Examples

    - name: Check for sync_binlog setting
    - mysql_variables:
        variable: sync_binlog

    - name: Set read_only variable to 1
    - mysql_variables:
        variable: read_only
        value: 1

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Balazs Pocze (@banyek)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.