无法修改SQL Server 服务名称

时间:2023-03-09 13:40:53
无法修改SQL Server 服务名称

之前安装数据库的时候,默认的是机器名A,然后装完后我设置过数据库发布即[复制]里面的[本地发布]

后来我又把机器名改了,但是平时登陆数据库都是用ip登陆的

今天我要设置一个新的发布,但是发现只能用实例名登陆,不允许用ip登陆数据库

但是我之前改过机器名,安装数据库的时候服务名默认就是机器名,但是现在两个已经不一样了

所以我需要修改实例名,但是发现修改不了,一直提示:

"仍有对服务器的远程登录或链接登录"

找来找去,都没有找到谁登陆了! 后来才发现,之前有过本地发布的原因导致的!

所以我要删除原先的本地发布,但是又删除不了,暂时没找到解决方法(这里只能先改回原来的机器名,然后删除旧的本地发布,然后重新改回新的机器名)

然后再重新修改服务名称,又报错:

" 无法删除服务器 'old_server_name',因为该服务器用作复制过程中的发布服务器。 (Microsoft SQL Server,错误: 20582) "

最后找到的解决方法如下:

计算机名修改后,SQL Server 服务器名称 与 计算机名不一致。

1. 检查SQL Server 的服务器名称

use master 
go 
select @@servername
select serverproperty('servername')

2.删除所有之前配置的publishers('old_server_name'为之前的服务名)

select * from msdb.dbo.MSdistpublishers
DELETE FROM msdb.dbo.MSdistpublishers
select * from msdb.dbo.MSdistpublishers
exec sp_droplinkedsrvlogin 'old_server_name',null
exec sp_dropserver 'old_server_name', 'droplogins'

执行完后,重启SQL Server服务

3.配置计算机名与服务名一致

USE master
 GO
 if serverproperty('servername') <> @@servername   
begin   
       declare @server sysname   
       set   @server = @@servername   
       exec sp_dropserver @server = @server   
       set   @server = cast(serverproperty('servername') as sysname)   
       exec sp_addserver @server = @server , @local = 'LOCAL'   
end

4.查看服务名
sp_helpserver