Java MySql在AmazonEC2上不工作
我在AmazonEC2LinuxAMI上的tomcat7上部署了一个JavaSpring应用程序。Mysql正在同一个实例上运行。我可以使用SSH连接远程连接到mysql服务器。但无法从spring应用程序访问mysql服务器。 Tomcat的context.xml如下所示:Java MySql在AmazonEC2上不工作,java,mysql,spring,amazon-ec2,Java,Mysql,Spring,Amazon Ec2,我在AmazonEC2LinuxAMI上的tomcat7上部署了一个JavaSpring应用程序。Mysql正在同一个实例上运行。我可以使用SSH连接远程连接到mysql服务器。但无法从spring应用程序访问mysql服务器。 Tomcat的context.xml如下所示: <Resource name="jdbc/db" auth="Container" type="javax.sql.DataSource" uniq
<Resource name="jdbc/db"
auth="Container"
type="javax.sql.DataSource"
uniqueResourceName="jdbc/db"
username="root"
password="pass"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db"
maxActive="15"
maxIdle="7"
validationQuery="Select 1" />
这不起作用,实际上我无法确定db是否已连接,因为它不会抛出错误。
但当我将localhost替换为在其他实例上运行的服务器时,它会按预期工作。
如果有人指出我错在哪里会很有帮助。端口3306打开了吗?EC2默认安全组控制新实例可以访问哪些端口,并且在默认情况下非常严格。登录并检查EC2>网络与安全>安全组下是否没有限制性规则。尝试读取tomcat错误-nano usr/share/tomcat8/logs/catalina.out
<Resource name="jdbc/db"
auth="Container"
type="javax.sql.DataSource"
uniqueResourceName="jdbc/db"
username="root"
password="pass"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db"
maxActive="15"
maxIdle="7"
validationQuery="Select 1" />
在我的connection.property文件中,我编写了如下代码
<Resource name="jdbc/db"
auth="Container"
type="javax.sql.DataSource"
uniqueResourceName="jdbc/db"
username="root"
password="pass"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db"
maxActive="15"
maxIdle="7"
validationQuery="Select 1" />
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/?user=root&password=pass
在tomcat8下运行的应用程序连接到本地mysql,一切正常。简单的读取错误上下文可能是某些东西不存在,或者是因为使用区分大小写的mysql抛出错误。我已经这样做了。我可以远程连接到mysql,但无法从托管在同一实例上的应用程序连接到mysql。我有一个类似的windows实例,其中应用程序和数据库驻留在同一个实例上,工作正常。但同样的配置在linux上不起作用。除了数据库连接,其他一切都正常工作。您的MySQL角色是用通配符定义的吗?如果您是从
localhost
连接,则类似GRANT ALL ON*.to'root'@'some.domain.name'
的规则将不起作用。相反,您需要将*.*上的所有内容授予“根”@“%
<Resource name="jdbc/db"
auth="Container"
type="javax.sql.DataSource"
uniqueResourceName="jdbc/db"
username="root"
password="pass"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db"
maxActive="15"
maxIdle="7"
validationQuery="Select 1" />