Skip to content

Connect Amazon RDS for MySQL to Infograph

What it brings in: Every table and view the user can read.

What you need

  • An RDS for MySQL instance, and access to its page in the AWS console.
  • Permission to edit the instance's VPC security group, or an SSH server (bastion) inside the VPC.
  • Infograph's sync servers connect from 51.222.152.247.

Your connection string

Each part is one thing you fill in, and each can fail on its own.

Amazon RDS for MySQL· Connection string
mysql://:@[db-instance-id].[random-id].[region].rds.amazonaws.comhost: fix for "We couldn't find that host. Check the host name, then try again.":3306port: fix for "The host refused the connection. Check the port, and that your database accepts connections from Infograph's address."/[database]database: fix for "That database does not exist on this server."
AddressSign inDatabaseSelect a label for its fix

Steps

  1. Copy the endpoint

    In the RDS console, open Databases, choose your instance and open the Connectivity & security tab. Copy the Endpoint and note the Port, usually 3306. Use the instance endpoint, not an RDS Proxy endpoint.

  2. Make it reachable from Infograph

    Check Publicly accessible says Yes on the same tab. Then open its VPC security group and add an inbound rule for MySQL/Aurora, port 3306, from the addresses below. If the instance must stay private, connect through an SSH server in the VPC under Advanced instead.

    51.222.152.247/32
  3. Create a read-only user

    Infograph only reads. Give it its own user so you can see and revoke its access in one place. Run this as the master user, with your own password and database name.

    CREATE USER 'infograph'@'%' IDENTIFIED BY '[strong-password]';
    GRANT SELECT, SHOW VIEW ON [database].* TO 'infograph'@'%';
  4. Write your connection string

    Put the endpoint, port and database together like this, with the user you created in place of the master username.

    mysql://[master-username]:[password]@[db-instance-id].[random-id].[region].rds.amazonaws.com:3306/[database]
  5. Paste it in Infograph and choose your tables

    Open Amazon RDS for MySQL in Infograph, paste the string and press Connect. Pick the tables you want and Infograph starts loading them.

    Allow 51.222.152.247 through your firewall so Infograph can connect.

    Connect

Troubleshooting

Each entry is the message Infograph shows when a connection fails. Open it for the fix.

This host is not reachable from Infograph. Use your database's public address.

The endpoint resolves to a private address because the instance is not publicly accessible. Change Publicly accessible to Yes, or connect through an SSH server in the VPC under Advanced.

We couldn't find that host. Check the host name, then try again.

Copy the Endpoint again from the Connectivity & security tab. An RDS Proxy endpoint (it contains .proxy-) resolves only inside the VPC: use the instance endpoint.

The host refused the connection. Check the port, and that your database accepts connections from Infograph's address.

Check the port matches the one on the Connectivity & security tab, usually 3306.

The server closed the connection. Check that it allows Infograph's address, and whether it requires an encrypted connection.

The server answered, then hung up before Infograph could sign in. Check it allows 51.222.152.247: some hosts close the connection rather than refuse it. If the server accepts only encrypted connections, set SSL Mode to Required under Advanced.

The host did not answer in time. Check the host and port, and that your firewall allows Infograph's address.

Nearly always the security group. Add an inbound rule for port 3306 from 51.222.152.247, and check the instance is Publicly accessible. If it is in a private subnet, connect through an SSH server in the VPC under Advanced.

The username or password was not accepted.

Use a database password, not an IAM authentication token: tokens (they contain Action=connect) expire after 15 minutes. Characters such as @, # or / must be percent-encoded in a string, so @ becomes %40.

Those credentials were not accepted.

Check the user and password, and that the user was created for '%' rather than 'localhost'. IAM authentication tokens expire, so use a database password.

That database does not exist on this server.

The database name is the part after the last / in the string. Check its spelling, for example with SHOW DATABASES; in the mysql client.

This server does not offer an encrypted connection. Turn on TLS on the server, or set SSL Mode to Preferred.

SSL Mode is set to Required, but the server would not encrypt the connection. Turn on TLS on the server, and check the host is the database's own address rather than a proxy in front of it. Or set SSL Mode to Preferred under Advanced.

Through an SSH server

Infograph could not reach your SSH server. Check its address and port, and that it allows connections from Infograph's address.

Check the SSH server's public address and port, and that its firewall allows 51.222.152.247 on that port, usually 22.

Your SSH server only offers old encryption settings. Infograph needs a current OpenSSH with an Ed25519, ECDSA or RSA (SHA-2) host key.

Your SSH server only offers old encryption settings. Update OpenSSH on it. It needs an Ed25519, ECDSA or RSA (SHA-2) host key.

Your SSH server refused Infograph's key. Check the key is in authorized_keys for that user.

Add Infograph's public key, shown in the form when you turn on SSH, to ~/.ssh/authorized_keys for the SSH user you entered. Check that user exists and that the file is readable only by them.

Your SSH server's identity changed. If you expected this, trust the new server on the connection.

Infograph remembers your SSH server's key from the first connect, and the server now shows a different one. If you rebuilt or replaced the server, open the connection and press Trust the new server. If you did not, ask whoever runs the server before you trust it.

This connection has not trusted an SSH server yet. Open the connection and use Re-discover streams to trust it.

The connection has not checked your SSH server yet. Open the connection and press Re-discover streams. Infograph then remembers the server's key.

Your SSH server would not forward to the database host. Check the permitopen rule and the database host and port.

The SSH server would not pass the connection on to the database. In authorized_keys, the permitopen rule must name the database host and port exactly as you entered them. In sshd_config, AllowTcpForwarding must not be no. The database must also accept connections from the SSH server, for example in its firewall or security group.