"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
接著在本機的hosts添加相應的IP地址和別名:
C:\Windows\System32\drivers\etc
hosts:
IP地址????? ? 別名
例如:
172.168.1.15 ? ? sniper
修改完,保存.
都修改完後,重啟一下SQL SERVER服務。
再次連接的時候,使用"別名"代替IP地址去連接服務器即可:
至此,問題解決!
(後來的一些測試中,我發現不用別名,只要知道服務器的具體名稱,一樣可以連接)
"SQLServer復制需要有實際的服務器名稱才能連接到服務器,請指定實際的服務器名"轉