MariaDB
MariaDB is supported as a source database — the database LakeXpress extracts data from. It cannot be used as the LakeXpress DB.
Although MariaDB is derived from MySQL, use ds_type: "mariadb" rather than "mysql" so LakeXpress can label and track the source correctly. Under the hood, mariadb connections are routed through the same MySQL connector (mysql-connector-python) as ds_type: "mysql" — there is no separate MariaDB driver.
Connection Parameters
| Parameter | Required | Description |
|---|---|---|
ds_type | Yes | Must be "mariadb" |
auth_mode | Yes | Must be "classic" |
server | No | Hostname or IP (default: localhost) |
port | No | Port (default: 3306) |
database | No | Default database/schema to connect to. If omitted, LakeXpress connects without selecting a default database (useful when discovery is scoped by job configuration instead) |
username | Yes | MariaDB username |
password | Yes | MariaDB password |
Required Permissions
-- Source database user:
GRANT SELECT ON your_database.* TO 'lakexpress_user'@'%';
-- INFORMATION_SCHEMA access is granted by default
Example: Source Database
{
"source_mariadb": {
"ds_type": "mariadb",
"auth_mode": "classic",
"info": {
"server": "localhost",
"port": 3306,
"database": "your-database",
"username": "$env{LX_MARIADB_USER}",
"password": "$env{LX_MARIADB_PASSWORD}"
}
}
}
Troubleshooting
Access denied for user:
Verify credentials, check host access: SELECT user, host FROM mysql.user WHERE user='your_user';, grant if needed: GRANT ALL PRIVILEGES ON database.* TO 'user'@'%';
Unknown database:
Verify name: SHOW DATABASES;, create if needed: CREATE DATABASE your_database;
Connection refused:
Check MariaDB is running (systemctl status mariadb), verify port (netstat -tlnp | grep 3306), check bind-address allows remote connections, check firewall (sudo ufw allow 3306/tcp).
See Also
- Database Connections Overview - Credentials file format, security best practices