Generic MySQL
Configuring your generic MySQL destination.
Prerequisites
- If your MySQL database is protected by security groups or other firewall settings, you will need to have the data syncing service's static IP available to complete Step 1.
Step 1: Allow access
Create a rule in a security group or firewall settings to whitelist:
- incoming connections to your host and port (usually
3306) from the static IP. - outgoing connections from ports
1024to65535to the static IP.
Optional: SSH tunnelingIf your database is not accessible from the public internet, SSH tunneling through a bastion host is supported. Allow inbound SSH (port
22) from the static egress IP on the bastion host, create an SSH user with the service's public key in~/.ssh/authorized_keys(contact support for the key), and grant the bastion host's IP access to the database port in place of the static egress IP. Provide the bastion host address, port, and username in the destination configuration.
Step 2: Create writer user
Create a database user to perform the writing of the source data.
- Open a connection to your MySQL database.
- Create a user for the data transfer by executing the following SQL command.
CREATE USER <username>@'%' IDENTIFIED BY '<some-password>';
Credential character limitationsFor user credentials containing special characters, please avoid using the following characters:
@,[,],/,?,#,",\\,+, space,&,:as these characters can break connection string parsing.
- Grant user required privileges on the database.
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW ON *.* TO <username>@'%';
If theschema/databasealready existsBy default, the service creates a new schema (in MySQL,
schemais synonomous withdatabase). If you prefer to create the schema yourself before connecting the destination, you must ensure that the writer user has the proper permissions on the schema, usingGRANT ALL PRIVILEGES ON <database_name>.* TO <username>@'%';
Step 3: Add your destination
Use the following details to complete the connection setup: host name, database name, port, your chosen schema name, username, and password.
Permissions checklist
- Database user has
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, CREATE VIEWon*.*. - If using a pre-created schema: user has
GRANT ALL PRIVILEGES ON <database>.*. - Firewall or security group allows the service's egress IP on port 3306. If using SSH tunneling, allow the egress IP on port 22 on the bastion host instead.
FAQ
Q: How is the MySQL connection secured?
A: We connect using the credentials you provide (host, port, username, password) over TCP. If your database is not publicly accessible, SSH tunneling through a bastion host is supported. The service uses public key authentication for bastion access.
Q: What MySQL versions are supported?
A: MySQL 8.0 and above are fully supported. MySQL 5.7 is best-effort only.
Q: Do I need to pre-create the schema?
A: No. The schema provided in the destination configuration is created automatically on first sync. If you pre-create it, grant ALL PRIVILEGES ON <database>.* to the writer user.
Updated 2 days ago