authelia/docs/configuration/storage/mariadb.md

2.6 KiB

layout title parent grand_parent nav_order
default MariaDB Storage Backends Configuration 1

MariaDB

The MySQL storage provider also serves as a MariaDB provider.

Version support

We recommend using the latest version of MariaDB that is officially supported by the MariaDB developers. We also suggest checking out PostgreSQL as an alternative.

The oldest version of MariaDB that has been tested is 10.6. If using 10.6 you may be required to adjust the explicit_defaults_for_timestamp setting. This will be evident when the container starts with an error similar to Error 1067: Invalid default value for 'exp'. You can adjust this setting in the mysql.cnf file like so:

[mysqld]
explicit_defaults_for_timestamp = 1

Configuration

storage:
  encryption_key: a_very_important_secret
  mysql:
    host: 127.0.0.1
    port: 3306
    database: authelia
    username: authelia
    password: mypassword

Options

encryption_key

See the encryption_key docs.

host

type: string {: .label .label-config .label-purple } required: yes {: .label .label-config .label-red }

The database server host.

If utilising an IPv6 literal address it must be enclosed by square brackets and quoted:

host: "[fd00:1111:2222:3333::1]"

port

type: integer {: .label .label-config .label-purple } default: 3306 {: .label .label-config .label-blue } required: no {: .label .label-config .label-green }

The port the database server is listening on.

database

type: string {: .label .label-config .label-purple } required: yes {: .label .label-config .label-red }

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

username

type: string {: .label .label-config .label-purple } required: yes {: .label .label-config .label-red }

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

password

type: string {: .label .label-config .label-purple } required: yes {: .label .label-config .label-red }

The password paired with the username used to connect to the database. Can also be defined using a secret which is also the recommended way when running as a container.

timeout

type: duration {: .label .label-config .label-purple } default: 5s {: .label .label-config .label-blue } required: no {: .label .label-config .label-green }

The SQL connection timeout.