MySQL
Connect & Ingest data from / to a MySQL database
Last updated
Connect & Ingest data from / to a MySQL database
Last updated
The following credentials keys are accepted:
host
(required) -> The hostname / ip of the instance
user
(required) -> The username to access the instance
database
(required) -> The database name of the instance
schema
(optional) -> The default schema to use
password
(optional) -> The password to access the instance
port
(optional) -> The port of the instance. Default is 3306
.
ssh_tunnel
(optional) -> The URL of the SSH server you would like to use as a tunnel (example ssh://user:password@db.host:22
)
ssh_private_key
(optional) -> The private key to use to access a SSH server (raw string or path to file).
ssh_passphrase
(optional) -> The passphrase to use to access a SSH server.
Additional Parameters. See for more details:
allow_all_files
-> Allows using LOCAL DATA INFILE without restrictions (true
or false
)
allow_cleartext_passwords
-> Permits sending passwords in clear text (true
or false
)
allow_fallback_to_plaintext
-> Allows fallback to unencrypted connection if server doesn't support TLS (true
or false
)
allow_native_passwords
-> Enables the native password authentication method (true
or false
)
allow_old_passwords
-> Allows the old insecure password method (true
or false
)
charset
-> Sets the charset for server-side prepared statements (e.g., utf8mb4
)
check_conn_liveness
-> Checks connection liveness before using it (true
or false
)
collation
-> Sets the collation for server-side prepared statements (e.g., utf8mb4_general_ci
)
client_found_rows
-> Returns number of matching rows instead of rows changed (true
or false
)
columns_with_alias
-> Prepares result columns as if they have an alias (true
or false
)
interpolate_params
-> Interpolates placeholders instead of using prepared statements (true
or false
)
loc
-> Sets the location for time.Time values (e.g., Local
, UTC
, or a time zone name)
time_truncate
-> Truncates time values to the given precision (true
or false
)
max_allowed_packet
-> Max packet size allowed (integer value in bytes)
multi_statements
-> Allows multiple statements in one query (true
or false
)
parse_time
-> Converts TIME/DATE/DATETIME to time.Time (true
or false
)
read_timeout
-> I/O read timeout (duration string, e.g., 30s
, 0.5m
, 1h
)
reject_read_only
-> Rejects read-only connections (true
or false
)
server_pub_key
-> Server public key name (string)
timeout
-> Timeout for establishing connections (duration string, e.g., 30s
, 0.5m
, 1h
)
write_timeout
-> I/O write timeout (duration string, e.g., 30s
, 0.5m
, 1h
)
connection_attributes
-> Connection attributes to send to MySQL (comma-separated list of key-value pairs)
tls
-> TLS configuration name (true
, false
, skip-verify
, or custom
when providing cert_*
keys below)
Custom TLS Certificates:
cert_file
(optional) -> the client certificate to use to access the instance via TLS (file path or raw)
cert_key_file
(optional) -> the client key to use to access the instance via TLS (file path or raw)
cert_ca_file
(optional) -> the client CA certificate to use to access the instance via TLS (file path or raw)
sling conns
Here are examples of setting a connection named MYSQL
. We must provide the type=mysql
property:
To allow Sling to access your database, we need to create a user with the proper privileges. Please follow the steps below:
First you'll need to login as a user with CREATE USER
and GRANT OPTION
privileges. Create a user sling
(or whatever you prefer) by running :
If you are planning to load data into this connection, you need to grant the following privileges to that user so we can create tables in schema sling:
If you are planning to extract data from this connection, you need to give permission to read the tables you'd like Sling to extract.
See to learn more about the sling env.yaml
file.
If you are facing issues connecting, please reach out to us at , on or open a Github Issue .