Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法创建PoolableConnectionFactory(未知数据库';XYZ#u DEV';)_Java_Mysql_Tomcat_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

Java 无法创建PoolableConnectionFactory(未知数据库';XYZ#u DEV';)

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"> <

我一直在尝试在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">

<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