【发布时间】:2018-07-18 02:05:44
【问题描述】:
我阅读了this SO 帖子。还有其他几个。我在 ubuntu 上设置了 Amazon EC2 服务器。我创建了一个 MySQL 数据库,并尝试通过 MySQL Workbench 连接到它。
使用标准 TCP / IP over ssh 我可以使用 .pem 密钥进行连接。
我使用 Workbench GUI 创建了一个新用户并授予了新用户所有权限。
在 Amazon EC2 接口中,我添加了安全组,以允许 ssh 和 TCP 均具有源 0.0.0.0/0 和 ::/0。
当我通过终端 ssh 进入服务器时,我可以将此用户连接到 MySQL mysql -uthe_new_usr -p。我无法进入 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 |
+------------------+------------------+
再一次,我可以使用标准 TCP/IP over SSH 选项进行连接,该选项使用我的 .pem 密钥。但我正在尝试与新创建的用户创建标准 TCP/IP 连接。
- 我将主机名中的条目更改为 IPv4 字段,以类似的数字
xx.xxx.x.xxx格式显示我的 EC2 实例仪表板。这与我用于 TCP / IP over ssh 连接的主机名相同(使用 .pem 密钥确实有效)。 - 我通过 Workbench 使用我的 root 用户将用户更改为我在创建新用户时设置的用户名。
- 对于我尝试将 3306、22 保留并删除的端口。这是我的 EC2 实例的安全组屏幕。
当我单击“测试连接”时,我收到消息“无法使用用户 my_new_usr 在 xx.xxx.x.xxx:3306 连接到 MySQL。无法连接到 'xx.xxx.x.xxx 上的 MySQL 服务器' (61)"。
从顶部链接的 SO 帖子中,我也在远程连接中输入了 netstat -tulpen:
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 -
我不确定下一步该去哪里?
【问题讨论】:
-
澄清一下: 1:EC2 中的 ubuntu 服务器,并且您已经在该 ubuntu 服务器上安装了 mysql(即,您不是在谈论单独的 RDS 实例对吗)? 2:您正在尝试从您家/工作场所的工作台连接到 mysql 数据库?
-
@JorgRoper,是的,一切都是正确的
标签: mysql amazon-web-services amazon-ec2 database-connection