Skip to main content

MySQL

MySQL can be used as a source database (the database LakeXpress extracts data from) and as the LakeXpress DB (the internal database LakeXpress uses for configuration, sync tracking, and pipeline logging). Both roles use the same connection parameter format.

Connection Parameters

ParameterRequiredDescription
ds_typeYesMust be "mysql"
auth_modeYesMust be "classic"
serverYesHostname or IP
portYesPort (default: 3306)
databaseYesDatabase name
usernameYesMySQL username
passwordYesMySQL password

Required Permissions

-- Source database user:
GRANT SELECT ON your_database.* TO 'lakexpress_user'@'%';

-- LakeXpress DB user:
GRANT ALL PRIVILEGES ON lakexpress_log.* TO 'lakexpress_user'@'%';

-- INFORMATION_SCHEMA access is granted by default

Example: Source Database

{
"source_mysql": {
"ds_type": "mysql",
"auth_mode": "classic",
"info": {
"server": "localhost",
"port": 3306,
"database": "your-database",
"username": "$env{LX_MYSQL_USER}",
"password": "$env{LX_MYSQL_PASSWORD}"
}
}
}

Example: LakeXpress DB

{
"lxdb_mysql": {
"ds_type": "mysql",
"auth_mode": "classic",
"info": {
"server": "localhost",
"port": 3306,
"database": "lakexpress_log",
"username": "$env{LX_MYSQL_USER}",
"password": "$env{LX_MYSQL_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 MySQL is running (systemctl status mysql), verify port (netstat -tlnp | grep 3306), check bind-address allows remote connections, check firewall (sudo ufw allow 3306/tcp).

See Also

Copyright © 2026 Architecture & Performance.