1. 程式人生 > >"SQLServer復制需要有實際的服務器名稱才能連接到服務器,請指定實際的服務器名"轉

"SQLServer復制需要有實際的服務器名稱才能連接到服務器,請指定實際的服務器名"轉

ast middle view space ip地址 oca 不一致 border tps

原文:"SQLServer復制需要有實際的服務器名稱才能連接到服務器,請指定實際的服務器名"轉

?"SQLServer復制需要有實際的服務器名稱才能連接到服務器,請指定實際的服務器名"?2014-06-12 12:01:10

最近在學習SQL SERVER的高級復制技術的時候,遇到一個小問題,就是用本地SQL SERVER連接服務器的數據庫時,在查看復制功能的發布服務器時,連接不上,彈出一個錯誤提示框架,如下:

原來在自己本地的實例是一切操作正常的,一連接到遠程服務器時就出現這個問題,後來在網上找了下,發現有這兩種情況:
一、自己本身的計算機名稱修改過,導致與服務器不一致。
二、在直接用IP地址連接遠程服務器時,如果不用別名來連接的話,就會出現上面這個錯誤提示框。

第一種情況下:
在SQL SERVER裏面執行下面語句:

use master

go

select?@@servername;

select?serverproperty(‘servername‘)

使用上面的語句查詢服務器的名稱和實際計算機的名稱,如果兩者不一致,就需要修改。
不一致就執行下面的語句:

sp_dropserver ‘old_server_name‘ go sp_addserver ‘current_computer_name‘,‘local‘

修改完後,重啟SQL SERVER服務。

第二種情況下:
為遠程服務器增加"別名",使用別名代替IP地址來連接遠程數據庫服務器。(我自己用的是SQL SERVER2012)
打開SQL SERVER2012的配置管理器,定位到"別名"服務選項,如下:


右鍵--->新建別名:

這裏的這個"別名"就用服務器名稱,就是用上面的SQL 語句查詢出來的名稱:(select

?@@servername;),IP地址就是這臺服務器的訪問地址。


接著在本機的hosts添加相應的IP地址和別名:
C:\Windows\System32\drivers\etc

hosts:

IP地址????? ? 別名

例如:

172.168.1.15 ? ? sniper

修改完,保存.


都修改完後,重啟一下SQL SERVER服務。

再次連接的時候,使用"別名"代替IP地址去連接服務器即可:


至此,問題解決!

(後來的一些測試中,我發現不用別名,只要知道服務器的具體名稱,一樣可以連接)

"SQLServer復制需要有實際的服務器名稱才能連接到服務器,請指定實際的服務器名"轉