Fedora无法通过jar文件连接到MySql

时间:2013-07-09 06:42:02

标签: java php mysql linux fedora

通过php直接访问MySql,我可以毫无问题地连接到数据库。

然而,当我尝试间接访问MySql时 - 借助连接到MySql db的jar文件,我无法从php连接。

我已经从终端测试了这个jar文件,它工作正常并连接到db。

简而言之,要连接到同一个db:

(1)php-mysql连接工作完美 (2)jar - mysql连接工作完美 (3)php - jar - mysql连接失败

从php代码中调用shell_exec("java -jar /var/www/html/nyk/app/webroot/Converter.jar $id");,正确调用jar文件并进入其中。但是,当jar文件中的java代码尝试连接到MySql时,当它到达以下行conn = DriverManager.getConnection(url + dbName, userName, password);时,它会给出以下异常:

    Inside JAR file
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: Permission denied

STACKTRACE:

java.net.SocketException: Permission denied
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at java.net.Socket.<init>(Socket.java:425)
    at java.net.Socket.<init>(Socket.java:241)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at com.nykkos.personalization.MysqlConnect.<init>(MysqlConnect.java:29)
    at com.nykkos.personalization.MyConnect.dbGenMusic(MyConnect.java:154)
    at com.nykkos.personalization.MyConnect.main(MyConnect.java:22)


** END NESTED EXCEPTION **

上述异常发生仅当从php执行jar文件时。然而,当从终端调用jar文件时,它连接到MySql而没有任何问题,如上所述。

我很困惑为什么会发生这种奇怪的行为 - 即;当从终端调用jar时连接到db,并在同一个jar尝试从php连接时给出异常。

我的操作系统是fedora,php运行的服务器是Apache。

它是否与任何配置设置有关,或者我在上面做了什么错误导致这个?

过去两天,我一直在用谷歌搜索这个问题无济于事。

我真的很感激,如果有人能让我脱离这个阻挡者。

提前致谢。

0 个答案:

没有答案