MySQL

Version support

See the MySQL Database Integration reference guide for supported version information.

Configuration

configuration.yml
storage:
  encryption_key: 'a_very_important_secret'
  mysql:
    address: 'tcp://127.0.0.1:3306'
    database: 'authelia'
    username: 'authelia'
    password: 'mypassword'
    timeout: '5s'
    tls:
      server_name: 'mysql.example.com'
      skip_verify: false
      minimum_version: 'TLS1.2'
      maximum_version: 'TLS1.3'
      certificate_chain: |
        -----BEGIN CERTIFICATE-----
        ...
        -----END CERTIFICATE-----
        -----BEGIN CERTIFICATE-----
        ...
        -----END CERTIFICATE-----        
      private_key: |
        -----BEGIN RSA PRIVATE KEY-----
        ...
        -----END RSA PRIVATE KEY-----        

Options

This section describes the individual configuration options.

encryption_key

See the encryption_key docs.

address

string address required

Configures the address for the MySQL/MariaDB Server. The address itself is a connector and the scheme must either be the unix scheme or one of the tcp schemes.

Examples:

configuration.yml
storage:
  mysql:
    address: 'tcp://127.0.0.1:3306'
configuration.yml
storage:
  mysql:
    address: 'tcp://[fd00:1111:2222:3333::1]:3306'
configuration.yml
storage:
  mysql:
    address: 'unix:///var/run/mysqld.sock'

database

string required

The database name on the database server that the assigned user has access to for the purpose of Authelia.

username

string required

The username paired with the password used to connect to the database.

password

string required

Important Note: This can also be defined using a secret which is strongly recommended especially for containerized deployments.

The password paired with the username used to connect to the database.

It’s strongly recommended this is a Random Alphanumeric String with 64 or more characters and the user password is changed to this value.

timeout

string integer duration 5 seconds not required

The SQL connection timeout.

tls

structure tls not required

If defined enables connecting to MySQL or MariaDB over a TLS socket, and additionally controls the TLS connection validation parameters.