我的计算机无法通过 JDBC 连接到 SQL Server 2012(超时),而其他计算机可以
Posted
技术标签:
【中文标题】我的计算机无法通过 JDBC 连接到 SQL Server 2012(超时),而其他计算机可以【英文标题】:My computer cannot connect through JDBC to SQL Server 2012 (times out) while others can 【发布时间】:2014-02-05 17:29:47 【问题描述】:所以基本上,我无法通过 JDBC 通过我的 tomcat Web 应用程序和 SQuirreL 连接到 SQL Server 2012
我尝试替换多个版本的 sqljdbc jar 文件。奇怪的是,我的同事竟然能成功连接!
此外,所有 jar 都成功连接到不同的 SQL Server 2005。
SQL Server Management Studio 2005 express(在我的机器上)可以毫无问题地连接到 SQL Server 2005 和 2012。
Tomcat 资源设置:
<Resource auth="Container" description="a Database Connection" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" logAbandoned="true" maxActive="300" maxIdle="50" maxWait="10000" name="jdbc/SomethingPool" password="PW" removeAbandoned="true" removeAbandonedTimeout="60" type="javax.sql.DataSource" url="jdbc:sqlserver://<SOMETHING>.<DOMAIN>.com:1433;databaseName=dbname;" username="USER"/>
旧的 SQL JDBC 版本(抱歉,不知道如何查看版本):
SQuirreL 测试连接超时 SQuirreL 连接 - 超时 Tomcat - 超时 其他开发者 SQuirreL - 成功! 其他开发者 Tomcat - 成功! SQL Server 2005 SQuirreL - 成功!新的SQL JDBC版本(最近从http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx下载):
SQuirreL 测试连接 - 成功! 也很奇怪 SQuirreL 连接 - 超时 Tomcat - com.microsoft.sqlserver.jdbc.SQLServerException:语句未返回结果集。 其他开发人员 SQuirreL - N/A 其他开发者 Tomcat - N/A SQL Server 2005 SQuirreL - 成功!我的机器
Windows 7 松鼠 3.5.0 Tomcat 6.0.18 Java 1.6.0_29 连接字符串:jdbc:sqlserver://..com:1433 SQL Server Management Studio Express 2005服务器:
Windows Server 2012 R2 SQL Server 2012(2005 兼容性)旧服务器:
Windows Server 2003 R2 SQL Server 2005谢谢!
【问题讨论】:
粘贴代码而非硬件配置 尝试使用不同的 JDBC 驱动程序,例如 jtds 这不是代码问题,因为它在另一台开发人员机器上运行良好 jtds 在松鼠上连接良好。但是,我认为我不会被允许在 Tomcat 上迁移到 jtds。 在新的 jdbc 驱动程序上更正了 tomcat 的结果 【参考方案1】:什么是 SQL 语句?由于您从 Tomcat 收到此错误(com.microsoft.sqlserver.jdbc.SQLServerException:该语句未返回结果集。)SQL 语句是否在 MSSQL 2012 Server Management Studio 中工作。只需尝试类似 (SELECT 1) 之类的简单操作,看看是否可行。
在 Tomcat 上,请提供资源配置。您可以尝试使用 Tomcat 提供的内置连接池。
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
由于超时,您可能遇到了网络问题。 ping 是否成功? 你能 telnet 到 1433 看看有没有防火墙阻止你的连接吗?
【讨论】:
是的,我可以 ping 服务器。我将使用配置更新我的帖子。不过,它同样适用于另一台开发人员机器以上是关于我的计算机无法通过 JDBC 连接到 SQL Server 2012(超时),而其他计算机可以的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 JDBC 连接到 sql 2008 express
无法使用 JDBC 驱动程序和 sql2o 连接到我的 Posgres 服务器