天天看點

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

最近在學習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位址去連接配接伺服器即可:

至此,問題解決!

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