2012-07-03 55 views
0

我最近在本地计算机上部署了一个.war,从Netbeans IDEAmazon EC2。我的Webapp中的Servlet使用JBDC Connector/J,它的jar文件被复制到Netbeans的库中。 WebApp在我的本地机器上运行良好。但亚马逊EC2上的Tomcat日志显示错误the host 'xyz' is not allowed to connect to this MySQL Server无法从Amazon EC2中的Java Servlet连接到MySQL

+1

MySQL服务器位于何处?亚马逊还是本地?如果在亚马逊上,安全组和实例防火墙(如果适用)是否允许访问您的EC2 Tomcat实例? – Viccari

+0

@Viccari MySQL位于Amazon服务器上。从Servlet本地访问MySQL是否需要在安全组中打开端口3306? –

+0

如果Tomcat和MySQL都在同一个EC2实例上,我不这么认为。他们? – Viccari

回答

1

为MySQL确认主机信息 - 在MySQL运行此:

select host, user from mysql.user; 

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

+0

我对此完全陌生。我运行你建议的命令,它给出了一个带有“主机/用户名”的表格。所有用户都是'root'。我不能做你所建议的任何事情。你能帮助更多的细节吗?谢谢。 –

+0

是您的客户端应用程序能够绑定到任何本地端口 - 使用任何测试套接字应用程序,运行它在一个特定的端口(而不是在其上的MySQL正在侦听)。如果无法这样做,例如端口1999(抛出异常/您在netstat -an | grep 1999中没有看到它),那么您应该检查您的VM安全组(即将该端口添加到安全组)。在添加到安全组后,重新启动虚拟机并再次尝试,直到您的测试套接字服务器能够绑定。如果这可以工作,请为您的mysql客户端尝试相同的方法(在安全组上打开端口,重启实例并重试)。 –