由于需要做一个简单的网页实现一个树形菜单并需要链接数据库,台式机被占用,只能在自己的笔记本上做,自己的本本上什么环境都是现成的,唯有数据库没有安装,加之自己的操作系统是买的时候自带的vista home basic版的,vista系统不兼容这件事情相信大家都知道了。没办法,只能装装看。从网上搜了一些,有的说能装上,有的说不能。不管这么多,自己试了再说。
1、 下载安装MSDERelA,链接是
http://download.microsoft.com/download/4/5/1/451d5d5c-69d4-40d5-b85d-f1d756cf46db/CHS_MSDE2000A.exe。
2、CHS_MSDE2000A安装:要求使用强SA密码解决方法
安装SQL Desk Top Engine (SQL2000桌面版)时可能出现一下信息:
"为了安全起见,要求使用强SA密码。请使用SAPWD开关提供同一密码。有关详细信息,请参阅自述文件。安装程序将立即退出。”
遇到这个问题解决方法是:
找到msde安装目录下的setup.ini,打开修改成下面这个样子
[Options]
SECURITYMODE=SQL
SAPWD=goodgoodstudy
其中SAPWD后的"goodgoodstudy"是你的sa的密码。
然后重新安装即可。
3、 安装sql server 2000个人版,基本上就是平常一样的安装,只是vista会提示兼容性有问题,可以不予以理会,点击“继续运行”就是了。
4、安装挂起问题解决:
在运行窗口(或命令行窗口)输入regedit,打开注册表编辑器,在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Control/Session Manager中找到PendingFileRenameOperations,删除该键值,关闭注册表编辑器。
5、重新安装sqlserver 2000个人版
这是网上的安装资料,按照这个步骤装就没什么问题,但是安装之后要使用还必须给sql2000安上sp4的补丁。
因为是jsp+sql2000,所以接着继续安装JDBC驱动,驱动一般就包括三个重要的jar文件和其他一些东西,把驱动安装在C:\Program Files下在Microsoft SQL Server 2000 Driver for JDBC\lib目录下把mssqlserver.jar,msbase.jar,msutil.jar三个文件copy到项目目录的lib下,即WebRoot\WEB-INF\lib的下面。
数据库和驱动都安装完毕后,就可以使用数据库了,但是在程序里连接数据库的时候还是报错了。我碰到的报错有:
1:[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.上网查,都说是因为1433端口没有开启,或者是jdbc需要是sp3,或者是sql2000没有安装补丁。后两个都安装了,所以只剩下1433端口的问题了。在命令提示窗口上输入netstat -an查看端口的情况,发现里面没有1433端口。但是查看vista系统下如何开启1433端口的,也没找到地方。最后在Sql sever2000的客户端网络实用工具的常规下查看SQL server2000启用的协议,一般要有TCT/IP 和named pipes(命名管道)协议,点击TCP/IP协议查看其属性,它的默认端口一般是1433,如果不是,就改为1433。再到服务器网络使用工具常规下查看,问题就出在这儿,服务器端这边的TCP/IP 和命名管道协议都在禁用协议那儿,根本没有开启还。不知道是默认,还是跟vista操作系统有关。反正不管这么多,把这两个禁用协议添加到开启的协议中,点击确定。重启SQL sever2000服务器。问题解决。
2:第一个问题解决以后,数据库还是连接不上,报错:
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sa' 登录失败。
我发誓我的用户名和密码绝对没错,而且安装SQL2000的时候选择的是混合登录模式。百思不得其解,网上类似问题的解决方法挨个儿试了个遍都没有解决。用查询分析器登录到数据库用同样的用户名和密码都是没问题的,我觉得邪门儿了。最后,总算是魏老师过来帮我看,我给他说了下情况后他说看看我数据库链接的代码:
String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver:localhost:1433;DatabaseName=tree";
String user="sa";
String password="123456";
Class.forName(driverName);
conn= DriverManager.getConnection(url, user, password);
这个数据库链接代码再平常不过了吧,然后他有看了我登陆查询分析器的情况,发现我登陆查询分析器的时候服务器的名字是//GM-PC\GM,他建议我把localhost改成//GM-PC\GM,果然,问题迎刃而解。
3.还有一个很弱的问题:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlser.SQLServerDriver。迷迷糊糊的不知道怎么会这样,原来是自己只在网上下了三个mssqlserver.jar,msbase.jar,msutil.jar文件,考到web-inf的lib下面,并没有安装jdbc的驱动。最后才恍然大悟,这个错误有点儿太低级了,但是粗心的时候也有,记下来,免的日后又忘记了。
数据库一连接上,其他的事情都好办多了。