Click here for more info on replicating your views.
In this article, we'll walk you through connecting your MySQL database to Stitch via an SSH Tunnel. These settings can also be used with Magento and any other eCommerce databases that use MySQL.
To connect your MySQL database to Stitch, you'll need to do the following:
The Public Key is used to authorize the Stitch Linux user. In the next step, we'll create the user and import the key.
To retrieve the key:
Leave this page open throughout the tutorial - you'll need it in the next section and at the end.
For the connection to be successful, you must configure your firewall to allow access from our IP addresses. Whitelist the following IPs before continuing onto the next step:
sshd_config file associated with the server is not set to the default option, only certain users will have server access - this will prevent a successful connection to Stitch. In these cases, it's necessary to run a command like
AllowUsers to allow the Stitch user access to the server.
This can be a production or slave machine, as long as it contains real-time (or frequently updated) data. You may restrict this user any way you like as long as it retains the right to connect to the MySQL server.
Note that anything inside square brackets -
[like this] - is something you need to define when running the commands yourself.
To create the new user, run the following commands as
root on your Linux server:
adduser [stitch username] -p mkdir /home/[stitch username] mkdir /home/[stitch username]/.ssh
To ensure the user has access to the database, we need to import the Public Key from the first step into
authorized_keys. Copy the entire key into the
authorized_keys file as follows:
touch /home/[stitch username]/.ssh/authorized_keys "< [PASTE KEY HERE] >" >> /home/[stitch username]/.ssh/authorized_keys
To finish creating the user, alter the permissions on the
/home/[stitch username] directory to allow access via SSH:
chown -R [stitch username]:[stitch username] /home/[stitch username] chmod -R 700 /home/[stitch username]/.ssh
In the next step, you'll create a database user for Stitch.
Your organization may require a different process, but the simplest way to create this user is to execute the following query when logged into MySQL as a user with the right to grant privileges:
GRANT SELECT ON *.* TO '[stitch_username]'@'localhost' IDENTIFIED BY '[secure password here]';
[secure password here] with a secure password, which can be different than the SSH password.
If you wish to restrict this user from accessing data in specific databases, tables, or columns, you can instead run
GRANT queries that only allow access to the data you permit.
To wrap things up, we need to enter the connection and user info into Stitch. Did you leave the MySQL credentials page open? If not, click the Add an Integration button on the dashboard and then click the MySQL icon. Don't forget to select the SSH Tunnel option from the Encryption Type menu.
mysql_marketingin the data warehouse.
127.0.0.1 (localhost), but could also be some local network address (e.g.
192.168.0.1) or your server's public IP address.
my.cnffile (usually located at
"/etc/my.cnf") underneath the line that reads
"[mysqld]". If the bind-address line is commented out in that file, your server is secured from outside connection attempts.
In addition, click the Connect using SSL checkbox if you're using an SSL connection.
In the next step, you'll define the integration's replication frequency and save the connection.
The Replication Frequency controls how often Stitch will attempt to replicate data from your data warehouse. By default, the frequency is set to 30 minutes, but you can change it to better suit your needs.
When you're finished, click the Save Integration button to complete the setup.
Now that your MySQL database is connected to Stitch, the last step is selecting the tables and columns you want to sync from your database.
If you're missing tables or some have a Sync Status of Unsupported, try these troubleshooting tips.