最近把一个老项目下载下来,想把系统搭建下来看看原来写的东西,数据库使用的是mssql(对其熟悉不如oracle,正因为如此,才想折腾!),然后把对应的数据库也导出出来了(sql server 2000),导入本机的sql server 2005数据库:现在开源连接池那么多,tomcat已经不怎么使用了,但是我就是想折腾一下。
一、小报一个错:报备份集中的数据库备份与现有的数据库不同的错误.解决方法:还原时设置:选项 -->还原选项 -->覆盖现有数据库 --> 确定,通过了。
二、一开始有点sb式的把sql server2000的jdbc驱动包(msbase.jar、msutil.jar、mssqlserver.jar)拷进tomcat/lib下,当然不行:
报错:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error
establishing socket.)
三、删掉mssqlserver.jar,换成个貌似是2005版本的包也叫mssqlserver.jar(从另一个正使用的2005版数据库的系统中找到的),然后修改下tomcat下comtext.xml的Resource配置,报错:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDDriver
找不到驱动了?后来才明白应该是driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"中的顺序不对,应该根据jar的目录结构来定。
注意:在SQL SERVER 2005中连接项与SQL SERVER 2000不同:sqlserver与jdbc先后不一样。
四、一会报这错,一会报那错,我对comtext.xml的Resource配置没信心,对jar引入是否正确没信心,都迟怀疑态度,遇到报错就急着改,急着要搞定,所以两手抓:改Resource配置 + 换jar包,没有严密的解决方法的逻辑性。这次换成了个sqljdbc4.jar包,重启:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The TCP/IP connection to the host localhost, port 1433
has failed. Error: Connection refused: connect. Please verify the connection properties and check that a SQL Server instance is running on the
host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.)
其实回头想想:这次报错够明显的了,离终点算是最近了,可我还是没引起重视,走绕行了。
五、朝上面这个错误解决,应该能最明显最快了,可是这个时候同事搞的测试,马上成功的,我觉得他的那个简单获取connection的测试页面---这种方式挺好的,移植到我这来,不行!
我们访问的是不同的数据库(我访问的是本机,他访问的是某服务器),则改成服务器数据库,通过了,可获取链接!shit,我的数据库有问题!
测试页面:
20110608 ADD:
tomcat 连接 sql server2005时:
不能拿到connection,报错信息:cannot create jdbc driver of class “某某某” for connect url “某某某”:
改正: 将context.xml文件中Resource配置的:
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=某数据库;SelectMethod=Cursor"
改成:
url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=某数据库;SelectMethod=Cursor"
(数据库版本:Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Express Edition with Advanced Services on Windows NT 5.1 (Build 2600: Service Pack 3) ,未打sp4补丁)
若是报错:cannot create jdbc driver of class “某某某” for connect url “null”,那就可能需要打sp4补丁了。