背景:
指定了一个自定义 Java 应用程序来连接 localhost 数据库User-PC\MSSQL
。这台机器需要更换为另一台具有更好硬件的新 PC。
问题:
由于自定义 Java 应用程序是很久以前由某人创建的,因此我无法追溯开发人员是谁并要求他更新数据库路径。我在新 PC 上安装了 SQL Server 2005,重命名了计算机名称以便User-PC
使用sp_addserver
,并将sp_dropserver
SQL 服务器名称重命名为MSSQL
(我所遵循的 sp_addserver 和 sp_dropserver 教程的参考链接)。但是,我仍然无法通过 SQL Server Management Studio 或 HeidiSQL 或自定义 Java 应用程序连接到数据库User-PC\MSSQL
。我仍然只能通过 连接新的 PC 数据库localhost
。
答案1
听起来你已经快到了……
但是,这可能是有多种原因的问题之一。因此,首先,您需要验证 SQL Server 配置管理器是否已将 SQL Server 配置为侦听正确的接口(如果需要,也包括外部接口)
由于防火墙的原因,您可能需要考虑静态设置侦听器端口,以确保下次服务器启动时不会潜在地侦听不同的端口并使用新端口信息向 SQL Server 浏览器注册自身(也可能受到防火墙保护=))。
您还需要验证 SQL 服务器浏览器服务在跑及其侦听端口也未设置防火墙或 SERVER\Instance 将无法在连接字符串中工作。此服务的目的是将命名实例解析为它们各自的侦听端口,用于在其连接字符串中使用 server\instance 的传入客户端连接(在某种程度上类似于“DNS 服务器”,但使用它们的端口号来映射命名实例),因为您可以在一台计算机上运行多个命名实例。
无论如何,如果这有帮助的话请告诉我。谢谢您的发帖。
答案2
如果适用的话,我建议改变事物的顺序。在未安装 SQL 的全新系统上:
- 将计算机名称更改为 User-PC
- 安装 SQL,安装过程中会询问实例名称,您可以将其指定为 MSSQL
检查您是否可以连接。我们通常会进行这些设置,我知道这是一种可靠的方法。
如果这不起作用,最好尝试通过运行查询来找出 SQL 中存储的实际实例。查询将告诉您尝试连接时数据库服务器名称应该是什么
SELECT CONVERT(sysname, SERVERPROPERTY('servername'))
这将返回您实际需要使用的内容。由于服务器名称实际上不同,因此这可能仍然是旧值。请参阅这个问题。