Links
Comment on page

MySQL

Connect & Ingest data from / to a MySQL database

Sling CLI Setup

The following credentials keys are accepted:
  • host (required) -> The hostname / ip of the instance
  • user (required) -> he 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:[email protected]: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.
Here are examples of setting a connection named MYSQL. We must provide the type=mysql property:
$ sling conns set MYSQL type=mysql host=<host> user=<user> database=<database> password=<password> port=<port>
# OR use url
$ sling conns set MYSQL url=mysql://myuser:[email protected]:3306/mydatabase?tls=skip-verify

Environment Variable

export MYSQL='mysql://myuser:[email protected]:3306/mydatabase?tls=skip-verify'

Sling Env File YAML

See here to learn more about the sling env.yaml file.
connections:
MYSQL:
type: mysql
host: <host>
user: <user>
port: <port>
database: <database>
schema: <schema>
password: <password>
MYSQL_URL:
url: "mysql://myuser:[email protected]:3306/mydatabase?tls=skip-verify"

Database user creation

To allow Sling to access your database, we need to create a user with the proper privileges. Please follow the steps below:
  1. 1.
    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 :
    CREATE USER 'sling'@'%' IDENTIFIED BY '<password>';
  2. 2.
    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:
    CREATE SCHEMA sling;
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW ON sling.* TO 'sling'@'%';
  3. 3.
    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.
    -- To give read access to all tables in a specific schema
    GRANT SELECT ON <schema_name>.* TO 'sling'@'%';
If you are facing issues connecting, please reach out to us at [email protected] or open a Github Issue here.
Last modified 27d ago