jsp Error establishing socket 解决方法汇总

[Microsoft][SQLServer  2000  Driver  for  JDBC]Error  establishing  socket.

 

在xp 系统上无法安装sql server 企业版,只可以安装个人版,本来个人版也是可以的,但是由于微软公司关于一个安全性问题的考虑,让个人版的sql server 不监听1433端口.故jsp在通过驱动连接数据库的时候会出现该Error establishing socket错误,
所以如果通过jdbc连接sql server 就必须给数据库打补丁,sql2ksp3.exe(据说不能打SP4的),下下来是exe文件,执行它,随便选个文件夹运行,然后打开该文件夹,执行里面的setup.bat,这样你的数据库就打上了补丁了,并且1433端口就监听了,
然后你在执行你的连接文件,就可以了,
  数据库选用混合模式,你打开企业管理器,选操作,点属性,在安全性中选择sql server 和windows这个选项,点确定,然后重启sqlserver和你的web服务器,在运行你的连接文件应该就可以了.

 

如果实在不行就删除SQLServer,然后重装,然后再打上补丁.

=======================================================
错误原因 没打补丁
打开企业管理器-〉工具-〉SQL查询分析器-〉帮助-〉关于
查看sql server的详细版本号
如果 是  8.00.194  就是还没打补丁
        8.00.760  就是SP3
        8.00.2039 就是SP4
 
1、下载Microsoft  SQL  Server  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

    安装完后,将JDBC安装目录D:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib下的msbase.jar,mssqlserver.jar,msutil.jar三个复制到D:/j2sdk/jre/lib/ext(根据自己的安装目录调整),D:/Program Files/Apache Software Foundation/Tomcat 6.0/lib

=================================================

安装ms SQL Server 2000 sp3 MSDE过程系统提示 指定的实例名称无效
 
把安装文件目录下的setup.ini改成成以下的样子...
<
其中:TARGETDIR="I:/Program Files/Microsoft SQL Server/MSSQL/Binn"  为你本机上mssql的安装路径的binn路径
DATADIR="I:/Program Files/Microsoft SQL Server/MSSQL/Data"  为数据库保存路径..
>
//文件如下.
[Options]
TARGETDIR="I:/Program Files/Microsoft SQL Server/MSSQL/Binn"
DATADIR="I:/Program Files/Microsoft SQL Server/MSSQL/Data"
INSTANCENAME="LOCAL"
SAPWD=
SECURITYMODE="SQL"
USEDEFAULTSAPWD
DISABLENETWORKPROTOCOLS=0

=================================================

对于TOMCAT6如何连接MSSQL2000的问题

首先要解决MSSQL2000的JDBC驱动,这个可以去网上下载SQL Server 2000 Driver for JDBC Service Pack 3.exe,当然MSSQL要升级为SP3。

那么怎么看自己的MSSQL是什么版本呢?

打开SQL分析器,在里面输入select  @@version,结果输出后看版本号,按照如下表格进行对照就知道是什么版本,打了什么补丁。

8.00.194 -——————SQL Server 2000 RTM
8.00.384 -——————(SP1)
8.00.534 -——————(SP2)
8.00.760 -——————(SP3)
8.00.2039 -——————(SP4)

在安装了MSSQL的JDBC驱动后,可以在安装目录的lib目录下(一般为C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib)有三个JAR包分别是msbase.jar,mssqlserver.jar,msutil.jar,这三个包很重要,将他们分别COPY到JDK的jre/ext/文件夹(例如D:/Program Files/Java/jre1.5.0_08/lib/ext)和TOMCAT6的lib文件夹中。

接下来就是如何连接MSSQL2000了

有好几种方法可以实现

第一种方法:在自己的应用网站例如"/MYAPP"下建立文件夹META-INF,再在此文件夹中建立context.xml文件(Tomcat 6.0/webapps/MYAPP/META-INF/context.xml),内容如下:

<?xml version='1.0' encoding='utf-8'?>
<Context>
  
<Resource
name="jdbc/MYAPP"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=MYAPP"
username="sa"
password=""/>
</Context>

然后在/MYAPP下做个测试页面test.jsp

<%@ page language="java"
contentType="text/html;charset=utf-8"
import="java.sql.*, javax.sql.*, javax.naming.*"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>jdbc</title>
</head>
<body>
<%
  //try{
      InitialContext initCtx = new InitialContext();
      Context envCtx = (Context) initCtx.lookup("java:comp/env");
      DataSource ds = (DataSource) envCtx.lookup("jdbc/MYAPP");

  Connection conn = ds.getConnection();
  Statement stmt = conn.createStatement();
  String strSql = "SELECT * from test";
  //Ҹе SQL Լ
  ResultSet rs = stmt.executeQuery(strSql);
  while(rs.next())
  { out.print(rs.getString(1)+"<br />"+rs.getString(2));}
  //}catch(Exception e){out.println(e);}%>
  </body>
  </html>

测试OK

第二种方法首先是和以前TOMCAT版本一样直接修改server.xml文件,将context添加到server.xml的<Host></Host>之间,但context需要指出路径,如下:

<Context path="/MYAPP"
  docBase="MYAPP"
  debug="0"
  crosscontext="true"
  reloadable="true" >
  
<Resource
name="jdbc/MYAPP"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=MYAPP"
username="sa"
password=""/>
</Context>

存盘退出,重启TOMCAT6,仍旧测试刚才的test.jsp显示OK。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值