OS: Ubuntu6.06
Tomcat: Tomcat 5.0.30
Mysql: MySQL5.0.22
mysql-connector: mysql-connector-java-3.1.14
本来安装完JDBC驱动mysql-connector-java后应该可以正常连接mysql的,
可是却碰到了这样的错误:
mysql 运行正常,可以在我的Apache2+PHP下连接。
很明显主要错误信息是:access denied (java.net.SocketPermission localhost resolve)
在网上找了好久,很多人都碰到了这样的问题,但是没有一个能够解决,都说是mysql的授权问题,我在mysql里grant了N遍都没用!在百度知道问了,也只有一人回答,而且还是说 mysql!
后来找到了一个类似的问题,听说是权限(tomcat security manager),于是模仿了一个他的解决方法,
编辑了tomcat目录下的policy.d/04webapps.policy,
在下面加了行:
其实就是用了错误信息里的:java.net.SocketPermission localhost resolve
得启tomcat,发现错误信息改变了:
这次有经验了,把刚才加的那句改成:
重启Tomcat,一切OK了,呵呵,终于连上数据库了。
Tomcat: Tomcat 5.0.30
Mysql: MySQL5.0.22
mysql-connector: mysql-connector-java-3.1.14
本来安装完JDBC驱动mysql-connector-java后应该可以正常连接mysql的,
可是却碰到了这样的错误:
QUOTE:
javax.servlet.ServletException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.security.AccessControlException
MESSAGE: access denied (java.net.SocketPermission localhost resolve)
root cause
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.security.AccessControlException
MESSAGE: access denied (java.net.SocketPermission localhost resolve)
** BEGIN NESTED EXCEPTION **
java.security.AccessControlException
MESSAGE: access denied (java.net.SocketPermission localhost resolve)
root cause
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.security.AccessControlException
MESSAGE: access denied (java.net.SocketPermission localhost resolve)
mysql 运行正常,可以在我的Apache2+PHP下连接。
很明显主要错误信息是:access denied (java.net.SocketPermission localhost resolve)
在网上找了好久,很多人都碰到了这样的问题,但是没有一个能够解决,都说是mysql的授权问题,我在mysql里grant了N遍都没用!在百度知道问了,也只有一人回答,而且还是说 mysql!
后来找到了一个类似的问题,听说是权限(tomcat security manager),于是模仿了一个他的解决方法,
编辑了tomcat目录下的policy.d/04webapps.policy,
在下面加了行:
CODE:
//added by flashlm 07-01-13
permission java.net.SocketPermission "localhost", "resolve";
permission java.net.SocketPermission "localhost", "resolve";
其实就是用了错误信息里的:java.net.SocketPermission localhost resolve
得启tomcat,发现错误信息改变了:
QUOTE:
MESSAGE: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:3306 connect,resolve)
这次有经验了,把刚才加的那句改成:
CODE:
//added by flashlm 07-01-13
permission java.net.SocketPermission "localhost", "connect,resolve";
permission java.net.SocketPermission "localhost", "connect,resolve";
重启Tomcat,一切OK了,呵呵,终于连上数据库了。