【发布时间】:2015-10-05 07:00:35
【问题描述】:
我有一个使用 jtds 驱动程序连接到 SQL Server 2000 的 java 应用程序。它在 Windows Server 2003 上运行良好。我这里使用的连接字符串如下
con = java.sql.DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/DBName", info);
现在我试图在 Windows server 2012 上运行相同的应用程序。 但这里的问题是,SQL server 2000 没有监听 TCP 端口 1433,但它正在监听共享内存。因此连接失败。
我尝试启用此链接Enabling TCP/IP Through the Server Network Utility 的解决方法部分中提到的 TCP/IP 协议。 SQL server 重启后也没有开始监听 TCP/IP。
要解决这个问题,我必须让 SQL 服务器监听 TCP/IP 端口,或者如果服务器没有监听 TCP/IP 端口,我需要更改我的代码以使用共享内存进行连接。
我正在尝试使用具有以下连接字符串的共享内存连接到服务器,如本页中提到的Creating a Valid Connection String Using Shared Memory Protocol
con = java.sql.DriverManager.getConnection("jdbc:jtds:sqlserver://localhost\SQLEXPRESS:1433/DBName", info);
这会导致异常 java.sql.SQLException: 未知的服务器主机名 'localhost\SQLEXPRESS'。
我也试过连接字符串:
con = java.sql.DriverManager.getConnection("jdbc:jtds:sqlserver://localhost\SQLEXPRESS/DBName", info);
产生异常: java.sql.SQLException: 未知的服务器主机名 'localhost\SQLEXPRESS'。
如果我能找到任何一个问题的解决方案,那就太好了
- 在 Windows server 2012 上为 SQL server 2000 启用 TCP/IP 端口
- 在 jtds 驱动程序中使用共享内存协议连接到 SQL Server 2000。
提前致谢, 贾扬特
【问题讨论】:
-
现在已经过了考虑升级 SQL Server 的时间了。除了 SQL Server 2000 很久以前就停止支持这一事实之外,最后支持它的 Windows 操作系统是 Windows Server 2003,它也已经停止支持。
标签: sql-server-2000 shared-memory windows-server-2012 tcp-ip jtds