mysql - MySQL 错误 61 无法连接
问题描述
我读了这篇SO 帖子。还有其他几个。我已经在 ubuntu 上设置了一个 Amazon EC2 服务器。我创建了一个 MySQL 数据库,并尝试通过 MySQL Workbench 连接到它。
通过 ssh 使用标准 TCP/IP,我可以使用 .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 连接。
- 我将 hostname 中的条目更改为 IPv4 字段,该字段以类似的 number 格式显示我的 EC2 实例仪表板
xx.xxx.x.xxx
。这与我用于 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 -
我不知道下一步该往哪里看?
解决方案
在朋友的帮助下:
- 编辑 my.cnf 文件,使绑定地址 = 0.0.0.0
- 然后只好重启mysql
sudo restart mysql
做到了。
推荐阅读
- python - 如何打印字典的第一个“n”值?
- node.js - 了解此 MDN 示例的回调
- javascript - 重构此函数以将其认知复杂度从 18 降低到允许的 15
- reactjs - 如何在 nextjs 应用程序的动态路由页面上添加 next-i18next 翻译?
- laravel - orderBy on hasMany 与 laravel 中的分页关系
- math - 一阶逻辑翻译
- reactjs - prevProps 和 current props 在 componentDidUpdate 中是一样的
- c - 未在文件中获取输出
- php - Yii2 无法在控制器中获取提交按钮名称
- python - 如果从第一个算法返回,则运行第二个算法,而第一个算法一直在运行。Python