gpt4 book ai didi

mysql - Tomcat7 MySQL 连接错误

转载 作者:行者123 更新时间:2023-11-28 23:53:24 24 4
gpt4 key购买 nike

我遇到了一个令人困惑的问题。我已经完成了一个 jsf web 应用程序,它使用 hibernate 和 infinispan 以及 Tomcat7 和 tomcat-jdbc-pool 作为连接池提供程序。

它被部署到一个有 2 个节点的 Linode 集群——一个数据库服务器和一个生产服务器。

我可以使用完全相同的 Tomcat7 副本在我的本地环境中运行该应用程序(我确实对 tomcat 目录进行了处理并将其提升到服务器以调试此错误)——即使连接到实时数据库实例也是如此。一切运行良好。

当我尝试从生产服务器运行应用程序时,出现 MySQLIO 错误:

Caused by: java.net.ConnectException: Connection refused

进一步查看我看到的日志:

The last packet sent successfully to the server was 1 milliseconds ago. The driver has not received any packets from the server. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

我可以很好地从 prodapp 服务器上的命令行连接——甚至使用 tcp:

mysql -h db01 -u user -p --protocol=tcp

但是它在 Tomcat 容器中运行是行不通的。我已经尝试了各种各样的事情,但我真的很难过。我可以在本地使用相同的 Tomcat7 副本连接到数据库服务器,但是当部署到生产环境时,相同的 tomcat7 副本无法连接——即使我可以从该生产服务器上的命令行连接,这似乎很奇怪。 .我很难过。

非常感谢任何帮助。

编辑: 在浪费太多美好生活之后解决了我的问题。答案是我很傻。感谢所有试图提供帮助的人。我有应用程序模式 w/dev 和 live 模式,连接池一直在读取开发模式。真正让人困惑的是,sessionfactory 被模式化为实时,因此它实际上会到达实时数据库并在启动时初始化连接,所以我可以看到它连接(并在 mysql 日志中运行元数据查询),但是当它实际上是去从 infinispan 获取连接,它爆炸了。哦,好吧——至少它现在可以工作了。再次感谢。

最佳答案

如果您从不同的机器连接到您的 MySQL 数据库服务器,那么您需要明确授予该用户帐户从该 IP 连接的权限。

您可以在命令行中执行此操作:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'ip_address'

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

查看您当前拥有的权限:

USE mysql;
SELECT * FROM users;

如果我光顾了您,我深表歉意,这是我遇到的最常见的问题。

关于mysql - Tomcat7 MySQL 连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5021174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com