首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat7 MySQL连接错误

Tomcat7 MySQL连接错误
EN

Stack Overflow用户
提问于 2011-02-16 19:30:04
回答 1查看 2.2K关注 0票数 0

我正面临一个令人困惑的问题。我已经完成了一个jsf web应用程序,它使用hibernate和无穷大,使用Tomcat7和Tomcat7池作为连接池提供程序。

它正在部署到Linode集群w/ 2节点--一个数据库服务器和一个生产服务器。

我可以使用完全相同的Tomcat7副本在我的本地环境上运行这个应用程序(我将tomcat目录注册并提升到服务器以调试此错误) --即使在连接到活动数据库实例时也是如此。一切都很好。

当我试图从生产服务器运行应用程序时,我会得到一个MySQLIO错误:

由:

引起的java.net.ConnectException:连接被拒绝

再往上看我看到的日志:

上一次成功发送到服务器的数据包是1毫秒前。驱动程序没有从服务器接收任何数据包。com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障

我可以从prodapp服务器上的命令行连接--即使使用tcp:

代码语言:javascript
复制
mysql -h db01 -u user -p --protocol=tcp

但在Tomcat容器内运行是行不通的。我试过各种各样的东西,但我真的很困惑。奇怪的是,我可以在本地使用相同的Tomcat7副本连接到数据库服务器,但是当部署到生产中时,相同的tomcat7副本无法连接--尽管我可以从该生产服务器上的命令行连接。我很困惑。

任何帮助都是非常感谢的。

编辑:在浪费了太多的生命之后解决了我的问题。答案是我很蠢。感谢所有想帮忙的人。我的应用程序模式是w/ a开发和活动模式,连接池一直在读取开发模式。真正令人困惑的是,sessionfactory是按模式运行的,这样它就可以在启动时到达活动数据库并初始化一个连接,这样我就可以看到它连接(并在mysql日志中运行元数据查询),但是当它实际上从无穷大范围获取一个连接时,它就崩溃了。哦,好吧--至少现在起作用了。再次感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-16 19:47:53

如果从不同的框连接到MySQL数据库服务器,则需要显式授予该用户帐户从该IP连接的权限。

您可以在命令行中这样做:

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON *.* TO 'username'@'ip_address'

编辑:通常不需要对所有表授予所有权限,具体说明要授予什么权限(http://dev.mysql.com/doc/refman/5.1/en/grant.html)

若要查看当前拥有哪些权限,请执行以下操作:

代码语言:javascript
复制
USE mysql;
SELECT * FROM users;

我很抱歉,如果我是在惠顾你,只是这是我遇到的最常见的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5021174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档