Java 无法创建PoolableConnectionFactory(未知数据库';XYZ#u DEV';)
我一直在尝试在AWS EC2 Ubuntu t1.micro实例上托管一个web应用程序 MySQL版本:5.5.35 Tomcat版本:7.0.52 JDK版本:7.0_51 webapp的上下文是:Java 无法创建PoolableConnectionFactory(未知数据库';XYZ#u DEV';),java,mysql,tomcat,amazon-web-services,amazon-ec2,Java,Mysql,Tomcat,Amazon Web Services,Amazon Ec2,我一直在尝试在AWS EC2 Ubuntu t1.micro实例上托管一个web应用程序 MySQL版本:5.5.35 Tomcat版本:7.0.52 JDK版本:7.0_51 webapp的上下文是: <?xml version="1.0" encoding="UTF-8"?> <Context path="/XYZ" docBase="XYZ" debug="5" reloadable="true" crossContext="true"> <
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/XYZ" docBase="XYZ"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/XYZ" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/XYZ?characterEncoding=UTF-8"
username="root" maxActive="100" maxIdle="50" removeAbandoned="true"
useUnicode="true" autoReconnect="true"
removeAbandonedTimeout="60" logAbandoned="true"
password="root"/>
</Context>
我检查了运行MySQL的主机
$ netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
如果我尝试使用
mysql -u root -h 127.0.0.1 -D database_name -p
连接正常
一切似乎都很好。我仍然找不到抛出错误的原因。
非常感谢专家的建议
提前感谢。以下规则是多余的。所以把它拿走
MYSQL TCP 3306 127.0.0.1/32
您的MySQL仅在本地主机上侦听:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
只要您在本地连接到MySQL,这就不是问题。但是任何到MySQl的远程连接都将失败。如果是这种情况,那么在my.cnf
中将MySQL绑定更改为0.0.0
在运行代码之前,是否可以尝试使用MySQL cli在本地连接MySQL,如下所示:
mysql -u <username> -h 127.0.0.1 -p
mysql-u-h127.0.0.1-p
如果此连接工作正常,请检查您是否能够使用jdbc
驱动程序正常连接。另外,请仔细检查您的jdbc
设置。找到了解决方案。
我之所以出错,是因为Linux版本的MySQL对数据库名称区分大小写。当我将整个堆栈从Windows移动到Linux时,我遇到了这个问题
Windows MySQL数据库名称不区分大小写,Linux MySQL数据库名称区分大小写。我尝试使用主机ip 127.0.0.1连接到MySQL。它很好用。由于我在AWS安全组中添加了所有流量,我知道添加MYSQL是多余的,但这只是以防万一。如何使用jdbc驱动程序检查连接?我在哪里检查jdbc设置。提前谢谢。我不是一个喜欢java的人。检查这些链接,它们将帮助您测试JDBC:,
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
mysql -u <username> -h 127.0.0.1 -p