【问题标题】:Unable to connect to MySQL from Java Servlet in Amazon EC2无法从 Amazon EC2 中的 Java Servlet 连接到 MySQL
【发布时间】:2012-07-04 09:44:01
【问题描述】:

我最近在我的本地计算机上将.war 从Netbeans IDE 部署到Amazon EC2。我的 Web 应用程序中的 Servlet 使用了 JBDC Connector/J,该 jar 文件被复制到 Netbeans 中的库中。 WebApp 在我的本地机器上运行良好。但是Amazon EC2上Tomcat的日志显示错误the host 'xyz' is not allowed to connect to this MySQL Server。

【问题讨论】:

  • MySQL 服务器在哪里?亚马逊还是本地?如果在 Amazon 上,安全组和实例防火墙(如果适用)是否允许访问您的 EC2 Tomcat 实例?
  • @Viccari MySQL 位于亚马逊服务器上。从 Servlet 本地访问 MySQL 是否需要在 Security 组中打开 3306 端口?
  • 如果 Tomcat 和 MySQL 都在同一个 EC2 实例上,我不这么认为。是吗?
  • @Viccari 是的,它们在同一个 Amazon EC2 实例上。

标签: mysql tomcat amazon-ec2 connector-j


【解决方案1】:

确认 mysql 的主机信息 - 在 mysql 上运行:

select host, user from mysql.user;

如果您的主机/端口信息正确,请尝试检查用于 Web 应用程序的权限。此外,请确保您的数据库服务器能够绑定到指定端口(netstat -an | grep 'port number')并且客户端应用程序可以连接到该端口(在主机上)。希望对你有帮助

【讨论】:

  • 我对此完全陌生。我运行您建议的命令,它给出了一个带有host/user 名称的表。所有用户都是root。我不能做你建议的任何其他事情。你能帮忙提供更多细节吗?谢谢。
  • 是您的客户端应用程序能够绑定到任何本地端口 - 使用任何测试套接字应用程序,在特定端口上运行它(不是 mysql 正在侦听的端口)。如果它无法这样做,例如端口 1999(抛出异常/您在 netstat -an | grep 1999 中看不到它),那么您应该检查您的 VM 安全组(即将该端口添加到安全组)。添加到安全组后,重新启动 VM 并重试,直到您的测试套接字服务器能够绑定。如果可行,请为您的 mysql 客户端尝试相同的操作(在安全组上打开端口,重新启动实例并重试)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-22
  • 1970-01-01
  • 2016-11-08
  • 2011-12-11
  • 1970-01-01
  • 2018-12-27
  • 2021-04-17
相关资源
最近更新 更多