`

[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结

 
阅读更多

今天做一个特殊的业务处理,用JDBC连接SQLServer数据库加载驱动的时候,报如下错误:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
	at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
	at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
	at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
	at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
	at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
	at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at app.specialSupervise.power.keywork.SendMessageDao.insert(SendMessageDao.java:68)
	at app.specialSupervise.power.keywork.SendMessageCmd.insert(SendMessageCmd.java:15)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.icore.util.CoreDaoFactory.invoke(CoreDaoFactory.java:117)
	at com.icore.util.CoreDaoFactory.invoke(CoreDaoFactory.java:135)
	at com.icore.core.CommandPool.invoker(CommandPool.java:92)
	at com.icore.core.CommandPool.handler(CommandPool.java:122)
	at com.inspur.core.action.c.handler(c.java:213)
	at com.icore.core.CoreAction.handler(CoreAction.java:234)
	at com.icore.http.HttpServerHandler$RestHandler.doHandler(HttpServerHandler.java:267)
	at com.icore.http.HttpServerHandler$RestHandler.handler(HttpServerHandler.java:254)
	at com.icore.core.ThreadPoolBean.run(ThreadPoolBean.java:57)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


一、配置错误
jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433
其中的sqlserver、server_name和端口号都要看仔细了。

二、1433端口问题
可以通过命令“netstat -an”,来查看是否开了1433端口,如果列表中没有,要增开端口。
要保持jdbc配置语句( jdbc:microsoft:sqlserver://server_name:1433)中的端口与数据库传输协议默认的端口相同。
MSSQL设置端口号步骤如下:
1. 打开企业管理器,依次在控制台根目录 ->Microsoft SQL Servers->SQL Server 组,列出一部分数据库服务器。
2. 右击我们要连接的数据库服务器,选择属性,在常规选项卡点击网络配置弹出新窗口。
3. 在启用的协议区域我们选择 TCP/IP ,点击属性按钮,弹出新窗口。在这个窗口有网络协议默认值设置,一般默认端口是:1433。 如果你在url中用的端口号与这个不同,就会出现错误。应保持二者相同。

三、没打补丁
可以用如下的方式查看MSSQL的版本:
打开企业管理器-〉工具-〉SQL查询分析器-〉帮助-〉关于
查看MSSQL的详细版本号
如果 是 8.00.194 就是还没打补丁
8.00.760 就是SP3
8.00.2039 就是SP4

1、下载MSSQL 2000 Service Pack 3a并安装,SQL请选用混和安装模式!!!
http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn
解压缩sp3的升级包后,还要点击setup安装.才能成功升级到sp3。
2、下载SQL Server 2000 Driver for JDBC Service Pack 3
http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en


四、系统防火墙或者杀毒软件
如果系统开防火墙或者杀毒软件,在有些情况下也可以出现类似的问题。
没有遇见过,有人这么说。

五、数据驱动版本或者写法不对应

如果端口对上之后,还连不上的话,请检查数据驱动的版本(sql2005,sql2000驱动写法有些细微差异)
纯JAVA驱动:
// 2005 版本:
驱动:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
连接:”jdbc:sqlserver:// localhost:1433;databaseName=pubs”,”sa”,”sa”
// 2000 版本:
驱动:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
连接:“jdbc:microsoft:sqlserver:// localhost:1433;databaseName=pubs”,”sa”,”sa”
JDBC-ODBC桥接:
驱动:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
连接:jdbc:odbc:test

分享到:
评论

相关推荐

    数据库驱动常见错误"java.lang.ClassNotFoundException:解决了jsp连接Error establishing socket.

    "java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver" ...[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 解决了jsp连接 sql server 2000的问题

    sqlserver2000连接jdbc时出现

    对于很多初学者而言,在尝试使用 SQL Server 2000 通过 JDBC 驱动连接数据库的过程中经常会遇到一个常见的错误:“[Microsoft][SQL Server 2000 Driver for JDBC] Error establishing socket.” 即使安装了 SP3 补丁...

    JDBC连接SQL Server 2008问题

    - **错误信息**:“java.sql.SQLException:[Microsoft][SQL Server 2000 Driver for JDBC] Error establishing socket.” - **解决办法**: - 将SQL Server升级至SP3或更高版本。 - 开启1433端口,确保TCP/IP连接...

    sql连库 很实用

    安装完毕后 在C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib 目录下有三个包msbase.jar mssqlserver.jar msutil.jar 1、在命令行下编译运行,配置环境变量 将这三个包的路径加入CLASSPATH中 ...

    如何解决java中出现的端口不能成功连接的问题

    你编写java程序出现了如下的错误提示【[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket】

    java 连接sql server数据库

    如果提示错误"Error establishing socket",请根据之前的说明安装相应的 SQL Server 2000 补丁即可。如果提示"ClassNotFoundException",那一定是 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); ...

    JAVA连接sql2005.pdf

    然而,如果出现任何问题,比如“Error establishing socket”等错误,您可能需要检查网络连接或者JDBC驱动是否正确安装和配置。 以上步骤详细介绍了如何在Java环境中配置并使用JDBC驱动连接Microsoft SQL Server ...

    jsp连接SQL server 2000经验总结

    2. **SQLException错误**:“[Microsoft][SQL Server 2000 Driver for JDBC] Error establishing socket.” - 此错误通常意味着无法与SQL Server建立连接。 - 检查SQL Server服务是否正常启动。 - 确认网络配置...

    解决XP不能用JDBC不能连接数据库的问题

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

    eclipse安装JDBC(SQL2000)

    - 在 Eclipse 中建立 JDBC 连接时,可能会出现 “Error establishing socket” 的错误。这通常是因为 SQL Server 没有正确配置远程访问功能或 Eclipse 无法识别 SQL Server 的 TCP/IP 端口。 - 检查 SQL Server ...

    java连接常用数据库示例

    这可以解决某些连接问题,例如“Error establishing socket”错误。 3. **加载驱动**: 使用 `Class.forName()` 方法加载 JDBC 驱动。对于 SQL Server 2000,驱动类全名为 `...

    检查本地TCPIP端口1433是否被监听

    在日常工作中,我们可能会遇到类似`java.sql.SQLException: [Microsoft][SQL Server 2000 Driver for JDBC] Error establishing socket`这样的异常。这类错误通常发生在试图通过Java应用程序连接到SQL Server数据库...

    WEB-INF中的web.xml中之前增加以下配置:

    除了开放1433端口外,还要升级数据库到SP3或SP4,否则连接会发出SQLNestedException:Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误。

    java连接不上数据库

    如果在测试连接 SQL Server 2000 J时,出现Error establishing socket错误,可以尝试以下解决方法: 1. 检查数据库服务器的端口号是否打开。 2. 检查驱动类的jar包是否正确配置。 3. 检查驱动类的路径是否正确设置...

Global site tag (gtag.js) - Google Analytics