| title | MariaDB |
|---|
This page covers connecting to MariaDB as a data warehouse. For using MariaDB as Metabase's application database, see Configuring the Metabase application database.
To add a database connection, click the grid icon in the top right, and navigate to Admin > Databases > Add a database.
MariaDB shares a driver with MySQL, so select the MySQL driver.
Metabase supports the oldest supported version of Maria DB through the latest stable version. See MariaDB Server releases.
You can edit these settings at any time. Just remember to save your changes.
Paste a connection string here to pre-fill the remaining fields below.
The display name for the database in the Metabase interface.
Your database's IP address, or its domain name (e.g., esc.mydatabase.com).
The database port. E.g., 3306.
The database username for the account that you want to use to connect to your database. You can set up multiple connections to the same database using different user accounts to connect to the same database, each with different sets of privileges.
The password for the username that you use to connect to the database.
You can paste your server's SSL certification chain.
See our guide to SSH tunneling.
JSON folding is not supported for MariaDB databases.
You can append options to the connection string that Metabase uses to connect to your database.
Turn this option OFF if people want to click Run (the play button) before applying any summarize or filter selections.
By default, Metabase will execute a query as soon as you choose an grouping option from the Summarize menu or a filter condition from the drill-through menu. If your database is slow, you may want to disable re-running to avoid loading data on each click.
See syncs and scans.
If you've selected Choose when syncs and scans happen > ON, you'll be able to set:
- The frequency of the sync: hourly (default) or daily.
- The time to run the sync, in the timezone of the server where your Metabase app is running.
Metabase can scan the values present in each field in this database to enable checkbox filters in dashboards and questions. This can be a resource-intensive process, particularly if you have a large database.
If you've selected Choose when syncs and scans happen > ON, you'll see the following options under Scanning for filter values:
- Regularly, on a schedule allows you to run scan queries at a frequency that matches the rate of change to your database. The time is set in the timezone of the server where your Metabase app is running. This is the best option for a small database, or tables with distinct values that get updated often.
- Only when adding a new filter widget is a great option if you want scan queries to run on demand. Turning this option ON means that Metabase will only scan and cache the values of the field(s) that are used when a new filter is added to a dashboard or SQL question.
- Never, I'll do this manually if I need to is an option for databases that are either prohibitively large, or which rarely have new values added. Use the Re-scan field values button to run a manual scan and bring your filter values up to date.
Periodic refingerprinting will increase the load on your database.
Turn this option ON to scan a sample of values every time Metabase runs a sync.
A fingerprinting query examines the first 10,000 rows from each column and uses that data to guesstimate how many unique values each column has, what the minimum and maximum values are for numeric and timestamp columns, and so on. If you leave this option OFF, Metabase will only fingerprint your columns once during setup.
JSON schema inference doesn't work with MariaDB, due to implementation differences between MySQL and MariaDB.
If your password contains characters that aren't UTF-8, then you might need to add an additional variable to the connection string passwordCharacterEncoding=<your_encoding_here>. This ensures that MariaDB understands the special characters in the password during authentication.
Set up an additional connection used for write operations. See Writable connections.
With database routing, an admin can build a question once using one database, and the question will run its query against a different database with the same schema depending on who is viewing the question.
See Database routing.
See Danger zone.