Supported databases#
By default, n8n uses SQLite to save credentials, past executions, and workflows. However, n8n also supports PostgresDB and MySQL.
Shared settings#
The following environment variables get used by all databases:
DB_TABLE_PREFIX(default: -) - Prefix for table names
PostgresDB#
To use PostgresDB as the database, you can provide the following environment variables:
DB_TYPE=postgresdbDB_POSTGRESDB_DATABASE(default: 'n8n')DB_POSTGRESDB_HOST(default: 'localhost')DB_POSTGRESDB_PORT(default: 5432)DB_POSTGRESDB_USER(default: 'root')DB_POSTGRESDB_PASSWORD(default: empty)DB_POSTGRESDB_SCHEMA(default: 'public')DB_POSTGRESDB_SSL_CA(default: undefined): Path to the server's CA certificate used to validate the connection (opportunistic encryption is not supported)DB_POSTGRESDB_SSL_CERT(default: undefined): Path to the client's TLS certificateDB_POSTGRESDB_SSL_KEY(default: undefined): Path to the client's private key corresponding to the certificateDB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED(default: true): If TLS connections that fail validation should be rejected
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
TLS#
You can choose between these configurations:
- Not declaring (default): Connect with
SSL=off - Declaring only the CA and unauthorized flag: Connect with
SSL=onand verify the server's signature - Declaring
_{CERT,KEY}and the above: Use the certificate and key for client TLS authentication
MySQL / MariaDB#
To use MySQL or MariaDB, provide the following environment variables:
DB_TYPE=mysqldborDB_TYPE=mariadbDB_MYSQLDB_DATABASE(default: 'n8n')DB_MYSQLDB_HOST(default: 'localhost')DB_MYSQLDB_PORT(default: 3306)DB_MYSQLDB_USER(default: 'root')DB_MYSQLDB_PASSWORD(default: empty)
1 2 3 4 5 6 7 8 | |
SQLite#
This is the default database that gets used if nothing is defined.
The database file is located at:
~/.n8n/database.sqlite
Other databases#
n8n officially supports SQLite, PostgresDB, and MySQL.
n8n internally uses TypeORM, so adding support for the following databases should be possible:
- CockroachDB
- Microsoft SQL
- Oracle
If you can't use any of the supported databases for some reason and you can code, consider submitting a pull request. You can also request support here.