1

I read this SO post. And a few others. I've set up a Amazon EC2 server on ubuntu. I created a MySQL database and I'm trying to connect to it via MySQL Workbench.

Using standard TCP / IP over ssh I am able to connect using a .pem key.

I created a new user using the Workbench GUI and have granted the new user all privileges.

Within Amazon EC2 interface I added tot he security group to allow both ssh and TCP each with source 0.0.0.0/0 and ::/0.

When I ssh into the server via the terminal I am able to connect this user to MySQL mysql -uthe_new_usr -p. I am unable to within MySQL Workbench.

mysql> SELECT User, Host FROM mysql.user;
+------------------+------------------+
| User             | Host             |
+------------------+------------------+
| root             | %                |
| reporting        | %                |
| root             | 127.0.0.1        |
| root             | ::1              |
| root             | ip-123-45-67-891 |
| debian-sys-maint | localhost        |
| root             | localhost        |
+------------------+------------------+

Once again, I am able to connect using the standard TCP / IP over SSH option which uses my .pem key. But I'm trying to create a standard TCP / IP connection with the newly created user.

On the connection wizard there are inputs for hostname, port and username: enter image description here

  • I changed the entry in hostname to the IPv4 field shown my EC2 instance dashboard in a similar format of number xx.xxx.x.xxx. This is the same hostname I used for the TCP / IP over ssh connection (Which does work using a .pem key).
  • I changed the user to the same username that I set when I created the new user, via Workbench, with my root user.
  • For the port I've tried leaving as is 3306, 22 and removing it. Here's a screen of the security group for my EC2 instance. enter image description here

When I click "Test Connection" I get the message "Failed to Connect to MySQL at xx.xxx.x.xxx:3306 with user my_new_usr. Can't connect to MySQL server on 'xx.xxx.x.xxx' (61)".

From the linked SO post at the top, I typed netstat -tulpen in my remote connection too:

ubuntu@ip-xxx-xx-xx-xxx:~$ netstat -tulpen;
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          9331        -               
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      106        12552       -               
tcp6       0      0 :::22                   :::*                    LISTEN      0          9345        -               
udp        0      0 0.0.0.0:49678           0.0.0.0:*                           0          7949        -               
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          8029        -               
udp6       0      0 :::28589                :::*                                0          7950        -     

I'm not sure where to look next?

Doug Fir
  • 19,971
  • 47
  • 169
  • 299
  • To clarify: 1: ubuntu server in EC2 and you've installed mysql onto that ubuntu server (ie you aren't talking about a seperate RDS instance right)? 2: you are trying to connect to the mysql database from you workbench at your home/workplace? – Jorg Roper Jul 18 '18 at 06:07
  • @JorgRoper, yes that is correct on everything – Doug Fir Jul 18 '18 at 16:11

1 Answers1

1

With the help of a friend:

  1. Edited my.cnf file in so that bind address = 0.0.0.0
  2. Then had to restart mysql sudo restart mysql

That did it.

Doug Fir
  • 19,971
  • 47
  • 169
  • 299