[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。