公司有个项目,数据库要求要用SQL2005,以前一直都用SQL2000,现在转用2005遇到了点麻烦,测试连接成功就用了一个上午的时间,突然发觉自己脑筋不好使了,遇到问题不能很快的开窍,^_^.。
电脑系统是XP的,所以下了个Microsoft SQL Server 2005 Express Edition,网址是:http://msdn.microsoft.com/zh-cn/express/bb410792.aspx,这个版本好,很小也实用。然后再下个Microsoft SQL Server Management Studio Express工具,注意:SQL2005数据库的安装之前要先装msxml6.msi和Microsoft .NET Framework 2.0 ,具体的安装过程这里就不说了,也很简单,应该很容易搞定的!
装好2005数据库后就下个2005数据库的驱动,网址是:http://www.microsoft.com/downloads/details.aspx?familyid=C47053EB-3B64-4794-950D-81E1EC91C1BA&displaylang=zh-cn,解压后找到那个sqljdbc.jar,把它复制到tomcat/bin目录下,这样启动tomcat后就会自动加载了。
在这里先用myeclipse连接数据库测试一下吧,
.进入MyEclipse Database Browser:
在MyEclipse右边DB browser框 -->右键 选择New。。。如下图
Driver Template :在下拉框中选择数据库驱动模板。这里这里选择 Microsoft SQL Server 2005
Driver name :驱动的名字。
Connection URL: 填写时 <>号及<>号中的内容为替代项(即将<>号及<>号中的内容按下面要求替代) 。[ ] 中的内容为选填项(如果要填写 [ ] 中的database项 只要去掉 [ ]号 )。
默认为:jdbc:sqlserver://<server_name>:<port>[;databaseName=<dbname>]
<server_name>内填写服务器的ip ,要是本机就是主机的IP或填写 localhost 表示本机 。
<port>:端口号的配置。 SQL Server 默认1433.
当一切都准备好了后连接时却遇到了问题,出现的问题是:
“到主机 的 TCP/IP 连接失败.。”这个是以前用2000数据库没有遇到过的,想了很久不明白是怎么回事。后来上网找了下资料,终于解决了,原来是动态端口的问题。下面是找到的解决方法:
禁用动态度端口,使用默认的1433端口
1、Microsoft SQL Server 2005 -->配置工具 -->SQL Server Configuration Manager。
2、进入SQL Server Configuration Manager后点击 “SQL Server 2005网络配置” 选择 “ XXXX的协议” (XXXX为实例名。比如实例名为SQLSERVER2005,则显示为 SQLSERVER2005的协议 ) 。
3、.在右边选择 “TCP/IP” , 进入TCP/IP属性对话框。选择"IP地址"栏 可以看到 IP1和IPALL3个 选择栏。 把3个选择栏中的 “TCP动态端口”选项的0去掉为空 ,表示不启用动态端口。在其下面的“TCP端口”填写1433,或者其他无冲突的端口号做为连接时的端口号。
4、选择“SQL Native Client 配置” 点击子菜单 “客户端协议”, 同样在右边选择 “TCP/IP” ,进入TCP/IP属性对话框。查看默认端口号,是否为1433.或者改为你自己的端口号 ,要与前面在“SQL Server 2005网络配置”中的TCP端口一致。
5、 之后, 重新启动SQL SERVER服务。
注意到了这个在下载的2005驱动里的release.txt文件里可以找到2000与2005加载驱动的区别
“Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2005 版
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // 2000 版
这将确保 URL 前缀“jdbc:sqlserver://”由 2005 版 JDBC 驱动程序处理,而
URL 前缀“jdbc:microsoft:sqlserver://”由 2000 版 JDBC 驱动程序处理。”