Connect to MySQL via SSH from MySQL Workbench

April 23, 2019 1.3k views
MySQL Ubuntu 18.04

MySQL Workbench throws: “Failed top Connect to MySQL at 127.0.0.1:3306 through SSH tunnel at root@xxx.xx.xx.xxx with user root”

I can SSH into the server using ssh key and I can login to the MySQL using the credentials when the LAMP droplet was created.

Workbench (8.0.15) settings are:
SSH Hostname: <droplet ip>
SSH User: root
SSH Key: <my ssh key>
MySQL Hostname: 127.0.0.1
MySQL port: 3306
Username: root
Password: <droplet mysql pass>

1 Answer

Greetings!

You may need to enable port forwarding in the SSH config. Try this:

echo "AllowTcpForwarding yes" >> /etc/ssh/sshd_config
systemctl restart ssh

Then try making the connection again in your application and see if that helps.

Jarland

  • Thanks, tried that but unfortunately it didn’t work.

    • Hmm. Any chance Windows firewall or internet security software could be blocking the port? I assume the tunnel exposes the port to the OS and then connects, and that it’s not all sandboxed.

    • It is possible that MySQL is limiting hostname access on the root account (tunnelling is meant to get around this).

      You could try running the following query from the MySQL terminal:

      SELECT user,host FROM mysql.user;
      

      You might find from the output that root is only allowed to connect to the hostname localhost.

      Which may be quickly fixed by changing MySQL Hostname: 127.0.0.1 to MySQL Hostname: localhost.

      Good luck!

Have another answer? Share your knowledge.