【问题标题】:Amazon EC2 - Can't connect remotely to MariaDBAmazon EC2 - 无法远程连接到 MariaDB
【发布时间】:2018-12-27 16:32:54
【问题描述】:

我正在配置我的 EC2 服务器。我设法安装了 php、laravel 等(虽然有点痛苦)。现在我

  • 在 MariaDB 上创建了一个用户
  • 从远程授予所有权限
  • 在 my.cnf 中启用了 bind-address = 0.0.0.0
  • 测试本地登录,有效
  • 在安全组中为 Mysql/Aurora、端口 3306、TCP、所有 IP(传入和传出)打开了规则

但仍然无法从远程登录,我明白了

ERROR 2003 (HY000): Can't connect to MySQL server on 'yyz.yyz.yyz.yyz' (110)

我能做什么?我没有任何类似的 iptables,一切都应该很简单……但事实并非如此:-(

我正在尝试使用此字符串从亚马逊网络外部连接

mysql -u myuser -pmypwd -h yyz.yyz.yyz.yyz -D myschema

请注意,我可以从服务器本身连接

mysql -u myuser -p -h localhost -P 3306 -D myschema

谢谢 马可

附:作为参考,这里是我的 MariaDB 用户

+---------------------------------------------+-----------+
| host                                        | user      |
+---------------------------------------------+-----------+
| %                                           | myuser    |
| 127.0.0.1                                   | root      |
| ::1                                         | root      |
| ip-yyz-yy-zz-yyz.us-west-2.compute.internal | root      |
| localhost                                   | root      |
| localhost                                   | myuser    |
+---------------------------------------------+-----------+

【问题讨论】:

  • 请向我们展示您连接到 MySQL 的连接字符串。这并不一定与您当前的安全规则很重要,但您是尝试从外部还是从 EC2 节点访问数据库?
  • 添加了来自服务器本身和外部网络的连接字符串
  • 您能否尝试在用于从外部 AWS 连接的连接字符串中指定端口 3306(目前它没有列出端口)?
  • 做到了。 mysql -u myuser -pmypwd -h yyz.yyz.yyz.yyz -P 3306 -D myschema。没用 :-/ 但不错的尝试!
  • 好的,下一个问题。您确定用户名和密码正确吗?您还确定您列出的主机是正确的吗?

标签: mysql amazon-web-services amazon-ec2 mariadb amazon


【解决方案1】:

EC2 实例有两个 IP 地址,内部和外部。

在我看来,您的用户表授权来自内部 IP 地址的访问。

ip-yyz-yy-zz-yyz.us-west-2.compute.internal | root 

您是否尝试从 AWS 外部连接到内部地址?那行不通™。

如果您尝试连接到外部地址,则必须将其添加到您的用户列表中。

对于故障排除而非生产,您可以添加* | root 用户。

您也可以通过浏览器尝试https://xyz.xyz.xyz.xyz:3306。它不会连接,但如果超时,您就会知道您的机器没有到该地址的路由。如果它产生某种乱码,你马上就知道 MySQL 端口是可见的。

【讨论】:

  • 感谢您的详尽回复。实际上,我正在尝试与 myuser 用户连接,该用户应该为任何 IP 启用。 “|%|myuser|”中的 % 符号不是吗?就是这个意思?
  • 另外,我的服务器上有一个正在运行的网络服务。如果我 ping 主机,比如 myhost.mydomain.com,我会得到 xyz.xyz.xyz.xyz IP。我应该在任何地方专门添加该 IP 吗?
【解决方案2】:

好消息和坏消息。

  • 好消息:我解决了这个问题!
  • 坏消息:我们都是对的。在安全组中打开 3306 端口就足够了。问题是 - 由于我不知道的原因 - 我一直看到错误的安全组。我注销,再次登录并看到正确的。在那里启用了端口 3306 并且 - 神奇 - 它起作用了!

感谢所有花时间帮助我解决此问题的人!

【讨论】:

  • Marco,当有人给你答案时,你不要发布自己的答案并选择它。 O. Jones 用他的答案的最后一段和他的答案中的 cmets 帮助你解决了你的问题。他应该得到支票和赏金。
  • 对于它的价值,我不在乎积分。什么是重要的?问题解决了,解释清楚,可以帮助下一个人。
  • 我真的很感谢 O. Jones 的回答,但是 - 正如我在他的回答下面的评论中解释的那样 - 我试图做一些不同的事情,不需要添加 *|root 用户或授权内部/外部 IP。 Tim Biegeleisen 的回复也很有用,但并没有带我去任何我没有去过的地方。因为我通过重新做我已经做过的事情解决了这个问题,但是在注销/登录之后,我认为正确的做法是说“向所有人致敬,但主要是对我自己!”并写下答案。我仍然感谢 O. Jones 和 Tim 在这个问题上花费的时间,我真的很感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 2013-07-20
  • 1970-01-01
  • 2015-10-31
  • 2021-09-15
  • 2012-04-03
相关资源
最近更新 更多