SQL Server 客戶端連線的問題
經常遇到 SQL Server 客戶端無法連線到SQL Server 例項(服務)。現在將這類問題歸納如下:
一、SQL Server 例項(服務)的問題
1、例項(服務)未啟動
開啟“SQL Server 配置管理器”(或者“管理工具”中的“服務”),檢查對應的例項(服務)的狀態是否為“正在執行”(或者“已啟動”)。如果該例項沒有啟動(甚至客戶端在連線時使用了錯誤的主機名和例項名),這個時候客戶端當然連線不到SQL Server資料庫了。
2、網路通訊協議未啟用
如果客戶端使用網路協議去連線SQL Server,那麼就要求SQL Server的例項(服務)也要啟用相應的網路協議。一般可能出現有2種狀況:
1. 發現在 SQL Server 本機可以訪問,但是客戶端不行。這是因為,從 SQL Server 2005 開始,本地訪問時預設使用 Shared Memory(可以理解為直接去記憶體中訪問),而遠端客戶端是不可能使用Shared Memory 的。
2. 修改了網路配置,啟用了 TCP/IP 協議,務必記得重啟 SQL Server 例項(服務),不然就沒有生效。
3、TCP/IP 埠配置
對於 TCP/IP 協議,請注意埠的配置。
(1) 是否“全部偵聽”
如下圖,此時“協議”選項卡的“全部偵聽”為“是”,表示本機所有的網絡卡都使用相同的配置,即所有網絡卡都使用同一個TCP埠號碼提供連線(忽略每一塊網絡卡獨立的配置資訊,只使用 IPAl
如果“全部偵聽”設定為“否”,那麼這臺伺服器的每一塊網絡卡都可以獨立配置“TCP埠”以及“已啟用”。
(2) 動態埠
如果“TCP動態埠”設為0,那麼將使用動態埠。
由於動態埠在每次啟用SQL Server例項(服務)時都可能改變,所以客戶端訪問時將自動向這臺伺服器的 UDP 1434 埠查詢,詢問對應的 SQL Server 例項(服務)的當前埠。UDP 1434 對應的服務是 SQL Server Browser,它負責向客戶端返回其查詢的SQL Server例項(服務)對應的TCP埠。
因此,如果啟用了動態埠,請啟動 SQL Server Browser 服務。
(3) 檢視埠狀態
例如,對於預設例項,可以使用 netstat 命令檢查 TCP1433 埠是否開啟。
4. 總結
對於例項(服務)的問題,可以直接檢視啟動日誌,啟動日誌一般為ERRORLOG(沒有後綴),通常位於 C:\Program Files\Microsoft SQL Server\<例項ID>\MSSQL\Log 資料夾。
二、網路問題
1. 防火牆
由於 Windows 2008 及後續版本增強了安全性,因此在安裝 SQL Server 時並不會自動開啟防火牆埠。
2. DNS
這裡又可能出現兩種常見問題。
(1)主機名錯誤
如果填寫了錯誤的主機名,例如 localhsot,肯定連線不上。
(2)DNS伺服器
如果是DNS伺服器的問題,建議在連線之前先嚐試 PING。同樣要注意,PING也需要目標計算機開啟防火牆埠。
三、帳戶與密碼錯誤
1. 訪問許可權的問題
客戶端訪問時使用的某個帳戶沒有許可權,當然也就不能訪問 SQL Server。
2. 帳戶被禁用
例如,預設情況下sa帳戶被禁用,需要手動修改為“已啟用”。
3. 如果是SQL帳戶登入
如果在安裝SQL Server時就指定身份驗證模式為“混合模式”,那麼就可以允許SQL Server帳戶,否則只允許Windows帳戶。
安裝完成之後,如果要修改身份驗證模式,可以通過SQL Server Management Studio修改。修改後需要重啟該SQL Server例項(服務)才會生效。
4. 總結
帳號的問題比較簡單,通常報錯資訊比較明顯。
附錄:
附件是舒老師在培訓時寫給學員的一個用於測試客戶端連線的小工具。
相關推薦
SQL Server 客戶端連線的問題
經常遇到 SQL Server 客戶端無法連線到SQL Server 例項(服務)。現在將這類問題歸納如下: 一、SQL Server 例項(服務)的問題 1、例項(服務)未啟動 開啟“SQL Server 配置管理器”(或者“管理工具”中的“服務”
sql server 客戶端登入會話數
1 SELECT login_name, 2 program_name, 3 COUNT(0) user_count 4 FROM sys.dm_exec_sessions WITH (NOLOCK) 5 WHERE session_id > 50 6 GRO
安裝 SQL Server 客戶端驅動程式
自從 Vista 和 Windows Server 2008 開始,驅動程式被稱 為Windows DAC windows 2008 odbc 一、三種 SQL Server 客戶端驅動程式 1. 作業系統整合的驅動程式 早期的驅動程式被稱為 Microsoft 資
關於VMware ESX Server客戶端連線不上等問題的解決
crond (pid 9701) is running... Chain INPUT (policy ACCEPT 9169 packets, 4606K bytes) pkts bytes target prot opt in out source
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.10' (111) 客戶端連線 centos 7 mysql 資料庫失敗
參考 https://stackoverflow.com/questions/1673530/error-2003-hy000-cant-connect-to-mysql-server-on-127-0-0-1-111 排查了 /etc/my.cnf 裡面的 bin
Java nio 客戶端連線Server
在做通訊系統的開發過程中,經常需要使用Socket通訊。java新的io機制給我提供了一個很好的非同步socket通訊方式,這段時間用java寫了一個客戶端用來連線server。發現執行效率還比較讓人滿意。下面是我實現的部分功能。 連線伺服器的socket,多執行緒啟動
spark-sql(spark sql cli)客戶端集成hive
oop research sel 數據 進行 dep per 集群 second 1、安裝hadoop集群 參考:http://www.cnblogs.com/wcwen1990/p/6739151.html 2、安裝hive 參考:http://www.cnblogs.c
003.FTP客戶端連線
一 命令列連線 注意: 1:命令列連線不支援目錄下載,使用mget也只會將目錄下檔案下載,不會下載目錄本身。 2:命令列連線不支援斷點續傳。 1 ftp [服務端IP] 2 -help #獲取幫助 3 -get #下載 4 -mget #下載一批檔案 5 -put #上傳
PG客戶端連線伺服器端報Connection refused (0x0000274D/10061) 的問題分析
C:\Users\Administrator>psql -h 192.168.80.189 -U highgo -p 5899 psql: 無法聯接到伺服器: Connection refused (0x0000274D/10061)
為何使用Microsoft SQL Server Management Studio連線Integration Services服務失敗
檢查是否滿足以下各項: 1. 首先你要確保當前你使用的Windows賬號是有管理員許可權的 2. 其次請在開啟Microsoft SQL Server Management Studio時,通過右鍵Run as administrator來開啟 3. 如果還是連不上,並且
mysql8遠端客戶端連線方式
mysql 8.0 預設使用 caching_sha2_password 身份驗證機制 —— 從原來的 mysql_native_password 更改為 caching_sha2_password。 從 5.7 升級 8.0 版本的不會改變現有使用者的身份驗證方法,但新使用者會預設使用新的 cac
Microsoft SQL Server 2017無法連線到WMI提供程式。您沒有許可權或者該伺服器無法訪問...問題的解決方法
本解決方案的原文連結 報錯視窗,解決方案開啟powershell 執行 mofcomp"%programfiles (x86) %\Microsoft SQL Server\號\Shared\sqlmgmproviderxpsp2up.mof" 這行命令 中的“號”指代其中有 “sqlm
oracle無客戶端連線資料庫(C#)
前提: 1. 不安裝oracle的客戶端 2. 不需要配置ora檔案 3. C# 實現 既然是C#實現,當然就要去找oracle的連線庫了,主要有三種方式: 1. 微軟提供的System.Data.OracleClient已經過時了,不推薦使用了 2. Or
客戶端連線Eureka叢集
客戶端分別yml: ###服務啟動埠號 server: port: 8002 ###服務名稱(服務註冊到eureka名稱) spring: application: name: app-toov5-order ###服務註冊到eureka地址 eureka: cli
redis-5.0 cluster帶認證及客戶端連線
Redis在3.0版正式引入redis-cluster叢集這個特性。Redis叢集是一個提供在多個Redis間節點間共享資料的程式集。Redis叢集是一個分散式(distributed)、容錯(fault-tolerant)的Redis記憶體K/V服務,叢集可以使
redis-5.0 cluster帶騰訊分分彩出售認證及客戶端連線
Redis在3.0版騰訊分分彩出售 dsluntan.com Q:3393756370 VX:17061863513正式引入redis-cluster叢集這個特性。Redis叢集是一個提供在多個Redis間節點間共享資料的程式集。Redis叢集是一個分散式(distr
客戶端連線不上kafka的問題以及kafka總是自動關閉問題
客戶端連線不上kafka的問題 java使用客戶端測試連線kafka:https://blog.csdn.net/Lnho2015/article/details/51353936 以下問題是基於kafka所在伺服器跟開發環境不在一臺機器上 1.把listeners和adver
Hive讀取HDFS上面的資料和使用Squirrel客戶端連線Hive
一、把資料從HDFS匯入到hive的表裡 前面已經測試了利用Sqoop把資料從SQL Server匯入到hdfs中,但是分成了好多小檔案,正在思考如何把很多小檔案一起匯入到hive裡面,突然想到可以用*來代替啊。 1.建表 在hive裡面建立好對應的表格 create t
boost::asio伺服器處理多個客戶端連線(客戶端程式)
//客戶端程式 // // main.cpp // tcpserver // Created by suxianbin on 2018/9/15. // Copyright © 2018 suxianbin. All rights
boost::asio伺服器處理多個客戶端連線(服務端程式)
class talk_to_client //: boost::enable_shared_from_this<talk_to_client> { public: talk_to_client():m_sock(service),already_r