java JDBC连接SQL Server2008 错误,通过端口1433连接到主机localhost的TCP/IP连接失败。错误:“null。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java JDBC连接SQL Server2008 错误,通过端口1433连接到主机localhost的TCP/IP连接失败。错误:“null。相关的知识,希望对你有一定的参考价值。

myeclipse项目通过proxool连接sqlserver死活连不上去,tip/ip也设置了,防火墙端口1433也设置允许了。最后实在找不到问题所在。自己写了个测试
import java.sql.*;

public class test
public static void main(String[] srg)
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sshdemo"; // 连接服务器和数据库test
String userName = "sa"; // 默认用户名
String userPwd = "123"; // 密码
Connection dbConn;
try
Class.forName(driverName);
//连接数据库不成功,通过debug发现在getConnection()调用后出现类似假死的现象,就是到这句话调试单步运行不下去
//,也一直没返回一个结果
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!"); // 如果连接成功
// 控制台输出Connection
// Successful!
catch (Exception e)
e.printStackTrace();




//连接数据库不成功,通过debug发现在getConnection()调用后出现类似假死的现象,就是到这句话调试单步运行不下去
我想原因可能就在这里,有大牛能解惑吗
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 PC-79160322 的 TCP/IP 连接失败。错误:“null。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1049)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)
at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)
at

贴异常信息啊 代码看似没问题

你不会是没开服务吧?要么就是SQL SERVER配置有问题,估计TCP/IP被禁用了

解决方法:
你查看sqlserver --> 配置工具 --> configuration manager->网络配置
-->SQLEXPRESS的协议 -->TCP/IP 的状态,将禁用修改为启用
我的电脑右键管理 服务和应用程序-->服务 -->SQLSERVER(MSSQLSERVER)先停用,再启用(最好改成手动)

如果还不成,我就再想想追问

我已经做过这个工作了,截图给你看

参考技术A 代码没有问题。检查一下sql server的设置,用一般的数据库工具能连上吗?再检查一下proxool的配置,以及sql server的驱动程序。追问

一般的能连上

追答

检查一下数据库驱动包(jar),这个包要放到你的classpath所能识别的目录下面去。

另外,你用数据库工具连接时,是用sa通过tcp/ip连的吗?

追问

我已经按照你的做了,错误提示太长。SQLEXPRESS的协议和mssqlserver协议都启用了tcp/ip,并且ip all都设1433,还是不行

追答

数据库驱动包用的什么版本?

追问

sqljdbc4.jar

追答

大小?最新版本的应该是571KB

本回答被提问者采纳
参考技术B 错误代码贴出来啊^

java 连接SQL Server

1、确认服务器的连通性,并且使用账户密码模式登陆有效。

1)、登陆服务器

2)、查看安全性

 

 2、新建数据库用于测试

3、下载jdbc安装并配置

进入微软官网主页--> 搜索JDBC-->找到合适自己的版本

 

 

下载完成后,解压。

eclipse 项目中配置JDBC。

4、简单测试

 1 package cn.test;
 2 
 3 import java.sql.*;
 4 
 5 public class DBUtil {
 6     public static void main(String[] args) {
 7         
 8         String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
 9         String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=数据库名";
10         String userName="sa";
11         String userPwd="密码";
12          try
13         {
14             Class.forName(driverName);
15             System.out.println("加载驱动成功!");
16         }catch(Exception e){
17             e.printStackTrace();
18             System.out.println("加载驱动失败!");
19         }
20         try{
21             Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
22             System.out.println("连接数据库成功!");
23         }catch(Exception e)
24         {
25             e.printStackTrace();
26             System.out.print("SQL Server连接失败!");
27         }    
28     }
29 }

 

 

读取测试

 1 package cn.test;
 2 
 3 import java.sql.*;
 4 
 5 public class DBUtil {
 6     public static void main(String[] args) {
 7         
 8         String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
 9         String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=test1";
10         String userName="sa";
11         String userPwd="密码";
12         //String sql = "select * from student";
13         
14         Connection conn;
15         //Statement stmt;
16         ResultSet rs;
17         PreparedStatement ps;
18         
19          try
20         {
21              //1、加载驱动
22             Class.forName(driverName);            
23             System.out.println("加载驱动成功!");
24         }catch(Exception e){
25             e.printStackTrace();
26             System.out.println("加载驱动失败!");
27         }
28         try{
29             
30             //连接数据库
31             conn =DriverManager.getConnection(dbURL,userName,userPwd);
32             System.out.println("连接数据库成功!");
33             
34             ps = conn.prepareStatement("select * from student");
35             rs = ps.executeQuery();
36             while (rs.next()) {
37                 String cnoString = rs.getString(1);
38                 String cnameString= rs.getString(2);
39                 String tnoString = rs.getString(3);
40                 System.out.println("cno "+cnoString+" cname "+cnameString+" tno "+tnoString);
41                 
42             }
43             
44             
45         }catch(Exception e)
46         {
47             e.printStackTrace();
48             System.out.print("SQL Server连接失败!");
49         }    
50     }
51 }

 

 

 

以上是关于java JDBC连接SQL Server2008 错误,通过端口1433连接到主机localhost的TCP/IP连接失败。错误:“null。的主要内容,如果未能解决你的问题,请参考以下文章

java JDBC连接SQL Server2008 错误,通过端口1433连接到主机localhost的TCP/IP连接失败。错误:“null。

java连接sql server 2008 失败 报错信息如下:

如何使用 JDBC 连接到 SQL Server 2008 数据库?

Java / SQL Server 2008 R2 Express 连接问题

java连接sql server的驱动包和连接方法

怎么使用JDBC连接SQL Server2008