计算机改名后,SQL数据库不能登录问题的解决方法。
1.用sa登录
数据库为master中新建查询
select from sys.sysservers
进行查询可发现数据库中还保留着之前的计算机名
2.在输入以下进行删除以原计算机名字进行登录的信息
EXEC sp_dropserver "原计算机名字"
点击执行后 再输入:select from sys.sysservers
进行验证,可发现已经查找不到信息了。
3.输入:EXEC SP_ADDSERVER "改后的计算机名字","LOCAL"
点击运行后,在进行查询
sqlServer 更改 服务器名的问题
机器名与实例名不同,解决办法
在执行 exec sp_addlinkedserver 'DMGZSRV10'
的时候一直提示
消息 15190,级别 16,状态 1,过程 sp_dropserver,第 56 行
仍有对服务器 'DMGZSRV10' 的远程登录或链接登录。
又执行
exec sp_dropserver 'DMGZSRV10', 'droplogins'
这时提示
无法删除服务器 ‘LC04’,因为该服务器用作复制过程中的发布服务器。 (Microsoft SQL Server,错误: 20582)
下面是解决的方案
原始状态
1、服务器名LC04 MSSQL实例名MSSQLSERVER
2、在LC04上建立了发布,在另一台服务器上订阅或者用SQLServer管理器远程访问LC04上的SQLServer,出现错误:
无法连接到 LC04。
其他信息:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,
在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。
(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
(Microsoft SQL Server,错误: 53)
解决处理
将LC04的计算机名称改为MSSQLSERVER与MSSQL实例名相同
此时状态
SQLServer管理器远程可以访问LC04的数据库,但不能订阅,出现错误:
SQL Server 复制需要有实际的服务器名称才能连接到服务器。
不支持通过服务器别名、IP 地址或任何其他备用名称进行连接。
请指定实际的服务器名称“LC04”。 (Replication.Utilities)
解决处理
在LC04(现在应当名为MSSQLSERVER)的服务器上,执行如下代码
SELECT @@SERVERNAME ,serverproperty('servername')
发现两个不同,分别为LC04和MSSQLSERVER
执行如下代码
exec sp_droplinkedsrvlogin 'LC04',null
exec sp_dropserver 'LC04','droplogins'
exec sp_addserver 'MSSQLSERVER' , 'LOCAL'
出现错误
无法删除服务器 ‘LC04’,因为该服务器用作复制过程中的发布服务器。 (Microsoft SQL Server,错误: 20582)
解决处理
select * from msdb.dbo.MSdistpublishers
DELETE FROM msdb.dbo.MSdistpublishers
select * from msdb.dbo.MSdistpublishers
exec sp_droplinkedsrvlogin 'LC04',null
exec sp_dropserver 'LC04','droplogins'
exec sp_addserver 'MSSQLSERVER' , 'LOCAL'
重启SQLServer服务
设置发布服务器属性,发现发布服务器的服务器名还是为LC04,造成发布执行错误:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,
在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。
(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
(Microsoft SQL Server,错误: 53)
使用 exec sp_helpserver
发现name为repl_distributor的服务器的network_name还是LC04
解决处理
执行
exec sp_setnetname 'repl_distributor','MSSQLSERVER'
再次设置发布服务器,并发布,完成
实际上在SQLServer和其他应用中还有可能用到原有的数据库名LC04
可以建立SQLServer的新别名为LC04,这样基本上都可以解决了