这是我编写的代码的一部分:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String host1 = "<URL/Connection path string>";
String uname1= "<User name>";
String pwd1 = "<Password>";
Connection con1 =DriverManager.getConnection(host1,uname1,pwd1);
Statement stmt1 = con1.createStatement();
ResultSet rs = stmt1.executeQuery("<Query>");
我使用了以下jar文件: jtds-1.3.0,sqljdbc-4.1.5605,sqljdbc4-4.0
运行代码时,出现以下错误:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host <host-name>, named instance <instance-name> failed. Error: "java.net.SocketTimeoutException: Receive timed out". Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434. For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:3589)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:1225)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:972)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at first_doc.main(first_doc.java:28)
据我所知,没有防火墙阻止流量。
还需要添加端口号作为连接URL的一部分吗?
编辑:我使用的是SQL Server 2008版
我在配置管理器中找不到SQLEXPRESS的协议
答案 0 :(得分:0)
这些是您需要执行的步骤。如果您已经这样做,请再次检查。
从此处下载最新的MSSQL JDBC驱动程序:http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx
引用了我项目中的2个JAR文件:
sqljdbc.jar和sqljdbc4.jar
(我不确定是否同时需要以上两个条件。)
确保SQL Server Browser Windows服务正在运行
打开SQL Server配置管理器,然后转到SQL Server网络配置下的SQLEXPRESS协议。右键单击“ TCP / IP”,然后选择“属性”。
设置已启用=是。
在此处时,单击IP地址选项卡,然后找到IP全部部分。
将TCP端口设置为1433。
将 sqljdbc_auth.dll 添加到PATH环境变量。就我而言:
D:\Java\sqljdbc_4.0\enu\auth\x64
将 sqljdbc_auth.dll 复制到您的JDK目录。就我而言:
C:\Program Files\Java\jdk1.7.0_04\bin