解决java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket这个异常

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。错误:“SQL 部署项目的时候碰到一个特别头疼的问题,折腾了老娘一个礼拜才搞定,特此修文一篇,先把错误代码贴过来: Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。错误:“SQL Server 未返回响应。连接已关闭。 ClientConnection 阅读详情

用JDBC连接SQL Servers数据库的时候,遇到这个问题。

今天忙了两个多小时来解决,最后终于搞定。把自己总结的一点经验和大家分享下,因为我发现网上有很多人遇到这个问题,但解决方案不多。


下面是正确的步骤,很简单:

        1、首先要确保安装了 sql server 2000,在xp 或win 2003下安装了  sql sp4 补丁(补丁非常重要,我就是一直没有给数据库打补丁不能连接的)。SP4补丁的下载地址是:http://www.microsoft.com/downloads/zh-cn/details.aspx?displaylang=zh-cn&FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5


2.配置驱动。把安装驱动器目录下lib中的三个jar包msbase.jar、mssqlserver.jar、msutil.jar放到你的web 服务器的lib 下面(比如说Tomcat下面的lib文件夹下)。或者设置到环境变量classpath中(如果你不是建立web项目的话应该选择这个)。这三个包也可以在网上搜索一下下载下来,很多的。

3.代码:

package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.swing.JButton;

public class JdbcUtil {
	private static String url="jdbc:microsoft:sqlserver://127.0.0.1:1434;dataBaseName=master";
	/*127.0.0.1是你的服务器的IP地址,因为我的SQL Server就安装在本地,所以IP就是localhost了
	 1434是数据库的端口,默认是1433,不知道咋滴我的是1434,捣鼓了半天才找到自己端口出问题了。
	master是数据库的名字,这个数据库是SQL Server2005自带的一个数据库。
	*/
	private static String user="sa";
	private static String pwd="123";
	

	
	private JdbcUtil(){
		
	}
	// 1、注册驱动com.microsoft.jdbc.sqlserver.SQLServerDriver
	static{
		try {
			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("数据库驱动加载失败!");
		}
	}
	// 2、建立一个连接
	public static Connection getConnection() throws SQLException{
		return DriverManager.getConnection(url, user, pwd);
	}
	
	// 5、关闭资源
	public static void free(ResultSet rs,Statement stmt,Connection conn){		
			try {
				if(rs!=null)
					rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				try {
					if(stmt!=null)
						stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}finally{
					try {
						if(conn!=null)
							conn.close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}		
	}
	
	
	//下面的主函数的作用是一个测试,看连库是否成功了。
	public static void main(String[] args) {
		JdbcUtil jdbcutil = new JdbcUtil();
		try {
			System.out.println(jdbcutil.getConnection());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	

}


如果测试通过,没有报异常就说明没问题了。

下面解决java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket这个异常。

可能原因1:端口不对。

解决办法:在SQL Server查询命令行下面输入:exec sys.sp_readerrorlog 0, 1, 'listening' 查看自己SQL Server                             端口号。本来SQL Server的默认端口是1433.。我的偏不一样,出异常了的时候没想到是这个问      题。


     可能原因2:SQL Server 2005的SP4没有安装。这个问题貌似也会导致连接数据库的时候不能通过SQL    Servers身份验证的方式登录。

     解决办法:安装SP4补丁。安装的时候安装在SQL Server下面就可以了。下载下来的补丁是可执行文件。

可能原因3:配置SQL的时候就不能通过SQL Servers身份验证的方式登录。简单地说就是使用SQL Server MangementStudio进入数据库的时候,当你选择了使用SQL Servers身份验证的方式登录不能登录成功。(你忘记了密码,不知道密码,或者是你没有启动那个账号作为你的登录账号)

 解决办法:1.1先用Windows验证的方法进去数据库。右键点击 左边的根目录---》属性,进去服务器属性,点击”安全性“,然后在”服务器身份验证“里面选择SQL Server和Windows身份验证模式。确定保存。1.2在SQL Server Mangement的主界面中双击最左边的”安全性“,在展开的菜单里面选择”登录名“右键点击”sa“这个用户,打开属性菜单栏,在这个里面你可以设置sa的登录密码。最重要的是我们要点击”状态“栏,然后点击登录设置为”启用“。




Unreal 5 MetaHuman插件全流程:从安装到角色动画生成 本文详细介绍了Unreal 5中MetaHuman插件的全流程使用指南,从安装配置到角色动画生成。通过Quixel Bridge下载预设角色,利用面部捕捉技术赋予数字人模型生命力,并提供材质编辑、性能优化等进阶技巧,帮助用户快速创建照片级真实的虚拟角色。 阅读详情

相关推荐

HybridCLR热更新打包报错全解析:从原理到实战解决方案

热更新技术是现代游戏和应用开发中实现动态内容交付与Bug修复的核心机制,它允许开发者在无需重新发布完整应用的情况下更新代码逻辑。其原理通常涉及在运行时加载并执行新的代码模块,这要求框架在底层实现安全的代码隔离、内存管理与元数据桥接。在Unity生态中,HybridCLR作为基于IL2CPP的高性能热更新解决方案,通过补充元数据和AOT泛型引用技术,实现了对C#代码的原生级热更支持,显著提升了开发迭代效率与线上问题修复能力。然而,在实际的工程实践中,尤其是在面向Android、iOS等多平台打包构建时,开发者

weixin_29017445的博客 308

java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerDriver

本来的项目SQLServer数据库可以正常使用,当我把项目换个环境,代码什么都没有动,就出现了这个错误java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerDriver 解决方法就是在项目的web-inf目录下的lib目录下加一个sqljdbc4.jar就可以了。 ...

weixin_40583191的博客 5276

2025软考信息安全工程师真题

2025信息安全工程师软考真题

qq_40424393的博客 1706

Java连接sql的配置问题以及出现java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver解决意见

一.知识准备前期要求掌握的知识:了解结构化查询语言SQL的相关内容。实验相关理论或原理: Java语言提供了对数据库的强大支持,Java语言提供JDBC来实现对数据库访问和数据处理的支持。利用JDBC来访问特定的数据库,实现对数据库的各种操作。具体有7步:(1)   导入JDBC类;(2)   装载/注册驱动程序;(3)   连接数据库;(4)   创建语句对象;(5)   执行SQL语句;(6)...

sinat_40959511的博客 13万+

浅谈一下小波变换和EEG信号处理

浅谈小波变换,总结不是很到位,请大家指正。

qq_45045249的博客 2861

两相变频交错PFC实战:从论文理论到PSIM仿真的完整避坑指南

本文详细解析了两相变频交错PFC技术从理论到PSIM仿真的完整实现过程,特别针对CRM模式下的BOOST PFC设计挑战提供实用解决方案。涵盖周期值比较法与RS触发器法的对比实施、PSIM仿真中的过零处理与收敛性优化等核心问题,并给出硬件实现的进阶建议,助力工程师高效完成高功率密度PFC设计。

weixin_30632089的博客 421

java.lang.ClassNotFoundException com.microsoft.sqlserver.jdbc.SQLServerDriver问题解决

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。由于使用的是SQLServer2016,网上找的jar包都是旧版本的,找了很久才找到sqljdbc42.zip;1.下载驱动jar包。...

m0_54883970的博客 1万+

基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案分享

各位FPGAer周末愉快,今天熊猫君分享一个基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案。

haoxingheng的专栏 1445

SQLserver连接IDEA报错 java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver问题解决

第一点:检查本地sqlserver服务(点击左下角开始找到本地安装的配置管理器)打开后找到SQL server网络配置里的 MSSQLSERVER的协议点击进入属性修改IP地址(修改为127.0.0.1)TCP端口为1433以及检查最底下IPALL的TCP端口是不是一致的(确保一致后点击应用)修改完毕后检查自己SQL Server(MSSQLSERVER)有没有启动打开sql server连接到服务器打开【控制面板】,单击“程序”;单击“打开或关闭Windows功能”,勾选“Telnet客户端”单击“确定”

weixin_47371473的博客 4798

编写用户帮助/操作手册指南

一个新系统,需要写用户操作手册,该从何下笔?本篇是一篇教你编写用户帮助/操作手册的指南~

pytester的博客 3万+

YOLO26优化:注意力魔改 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 487

解决java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket异常

用JDBC连接SQL Servers数据库的时候,遇到这个问题。 下面是正确的步骤,很简单:         1、首先要确保安装了 sql server 2000,在xp 或win 2003下安装了  sql sp4 补丁(补丁非常重要,我就是一直没有给数据库打补丁不能连接的)。SP4补丁的下载地址是:http://www.microsoft.com/downloads/zh-cn/d

天高地阔的专栏 751

基于YOLOv11的仓库机器人导航系统设计与实现:Amazon Robotics Challenge解决方案

本文将详细介绍一个基于YOLOv11目标检测算法的仓库机器人导航系统,该系统能够准确识别托盘(pallet)和箱子(box),为机器人提供精确的导航信息。而基于深度学习的视觉导航系统能够实时识别环境中的关键物体,如托盘和箱子,从而实现更智能的路径规划和货物搬运。YOLOv11作为YOLO系列的最新演进版本,在检测精度和速度上都有显著提升,非常适合仓储环境中的实时物体检测任务。YOLOv11在保持实时性的同时,提高了对小物体和密集物体的检测能力,这对仓储环境中的托盘和箱子检测尤为重要。

YOLO 303

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket解决

环境:MyEclipse 6.5+Tomcat6.0.18+Struts2.1+Hibernate3.2+Spring2.5.6 问题:启动Tomcat出现” java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Errorestablishing socket”异常。   出错信息如下: 2012-05-12

DBA@Robin 4630

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java.sql.SQLException: [ Microsoft ][SQLServer 2000 Driver for JDBC ] Error establishing socket.

在windows XP下使用JDBC连接SQL Server 2000数据库时出现以下异常:java.sql.SQLException: [ Microsoft ][SQLServer 2000 Driver for JDBC ] Error establishing socket.解决方法如下:1.到http://www.microsoft.com/downloads/details

Shanks@优快云 1210

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket 解决方法

昨天经理让我调查一个问题,在客户那装的SQL2000重新安装后联不上了,一开始数据驱动总抱错误[Microsoft][SQLServer 2000 Driver for JDBC]????????,不知道什么意思,就不断的想出现这种错误的原因,在网上查了一会,别人总结了三个原因:1、 服务器正常启动检查是不是使用1433 端口2、查看防火墙是不是屏蔽1433端口了3、CMD-NETSTAT ...

weixin_33743248的博客 368

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket

一、准备环境   Windows XP+JDK5.0+Microsoft SQL Server 2000个人版+JCreator(或Eclipse)下载数据库驱动程序SQL Server 2000 Driver for JDBC Service Pack 3.exe http://www.microsoft.com/downloads/details.aspx?fami

yfrainy的专栏 3216

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

protected static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; protected static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;" + "DatabaseName=db_JXC;SelectM

水煮鱼的博客 2299

JDBC连接SQLServer时出现错误Error establishing socket.的解决。

出现错误:java.sql.SQLException : [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.     at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)     at com.micros

zhwfnh的专栏 790

关于javax.servlet.ServletException: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 错

       我想很多新手和我一样,在刚开始使用sql时遇到数据库连接不上的情况,上网查吧,很多都是未解决的帖子。我也是个新手,懂得不多,只是将我所了解和所犯的错误说出来,可能会对一些朋友有些作用吧。       首先,我犯的严重的错误是,将sql server 2000 的补丁sp3和sql server driver for jdbc sp3混为一谈。所以我安装了driver for jd

hyxwxy的专栏 6241

关于java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

<br />最近建立师生交互网站时发现连接数据库时报tomcat报错 <br />java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]Error   establishing   socket.<br />原因已经找到,我的配置:sql server2000  tomcat6.0.32,jdk1.6.0_23。需要把sql2000个人版升级到sp3,且勿windows验证

haqer0825的专栏 666
上一篇: SQL Server 2005 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程)
下一篇: 基础部分-JDBC增删改查
freewind
博客等级 码龄16年 136粉丝 108原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值