在與SQL Server建立連接時(shí)出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實(shí)例的錯(cuò)誤
本文介紹了ECS通過內(nèi)網(wǎng)以及ECS以外的其他設(shè)備通過外網(wǎng)無法訪問RDS SQL Server實(shí)例時(shí)的解決方案。
問題描述
使用ECS實(shí)例通過內(nèi)網(wǎng)連接RDS SQL Server實(shí)例時(shí),提示以下錯(cuò)誤信息。
無法連接到XXX。Cannot connect to XXX。
在與 SQL Server 建立連接時(shí)出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實(shí)例的錯(cuò)誤。未找到或無法訪問服務(wù)器。請(qǐng)驗(yàn)證實(shí)例名稱是否正確并且 SQL Server 已配置為允許遠(yuǎn)程連接。 (provider: TCP Provider, error: 0 - 由于連接方在一段時(shí)間后沒有正確答復(fù)或連接的主機(jī)沒有反應(yīng),連接嘗試失敗。) (Microsoft SQL Server,錯(cuò)誤:10060或258)
解決方案
阿里云提醒您:
如果您對(duì)實(shí)例或數(shù)據(jù)有修改、變更等風(fēng)險(xiǎn)操作,務(wù)必注意實(shí)例的容災(zāi)、容錯(cuò)能力,確保數(shù)據(jù)安全。
如果您對(duì)實(shí)例(包括但不限于ECS、RDS)等進(jìn)行配置與數(shù)據(jù)修改,建議提前創(chuàng)建快照或開啟RDS日志備份等功能。
如果您在阿里云平臺(tái)授權(quán)或者提交過登錄賬號(hào)、密碼等安全信息,建議您及時(shí)修改。
ECS通過內(nèi)網(wǎng)無法訪問RDS的解決辦法
檢查ECS實(shí)例的內(nèi)網(wǎng)IP地址是否已添加到RDS實(shí)例的白名單。
通過RDS內(nèi)網(wǎng)地址連接RDS實(shí)例前,需要先將ECS內(nèi)網(wǎng)IP添加到RDS白名單。相關(guān)操作,請(qǐng)參見如何查詢ECS實(shí)例的IP地址和如何設(shè)置RDS白名單。
說明如果僅將ECS外網(wǎng)IP地址添加到RDS白名單,則無法通過內(nèi)網(wǎng)連接RDS。
檢查ECS和RDS實(shí)例是否位于不同的地域。
ECS實(shí)例和RDS實(shí)例需要位于同一地域才能內(nèi)網(wǎng)互通。可以是同一地域的相同或不同可用區(qū)。
進(jìn)入RDS實(shí)例詳情頁,查看實(shí)例所在地域。
查看ECS實(shí)例所在地域。
如果ECS實(shí)例和RDS實(shí)例位于不同的地域,則無法直接通過內(nèi)網(wǎng)互通,請(qǐng)參見以下方法處理:
方法一:
方法二:
ECS實(shí)例使用RDS實(shí)例的公網(wǎng)連接地址連接RDS實(shí)例,這種方式的性能、安全性、穩(wěn)定性較差。如何申請(qǐng)外網(wǎng)地址,請(qǐng)參見申請(qǐng)SQL Server外網(wǎng)地址。
方法三:
使用云企業(yè)網(wǎng)打通跨地域VPC網(wǎng)絡(luò)(前提是源和目標(biāo)的網(wǎng)絡(luò)類型都是專有網(wǎng)絡(luò)VPC),詳情請(qǐng)參見云企業(yè)網(wǎng)入門概述。
檢查ECS和RDS的網(wǎng)絡(luò)類型是否相同(都是專有網(wǎng)絡(luò)或都是經(jīng)典網(wǎng)絡(luò))。
進(jìn)入RDS實(shí)例詳情頁,查看實(shí)例網(wǎng)絡(luò)類型。
查看ECS實(shí)例網(wǎng)絡(luò)類型。
如果網(wǎng)絡(luò)類型不同,一個(gè)是經(jīng)典網(wǎng)絡(luò),一個(gè)是專有網(wǎng)絡(luò),請(qǐng)參見以下方法處理:
重要阿里云各產(chǎn)品經(jīng)典網(wǎng)絡(luò)正在逐步下線中,對(duì)于RDS實(shí)例和ECS實(shí)例,建議您盡快將經(jīng)典網(wǎng)絡(luò)切換到VPC網(wǎng)絡(luò)。具體詳情,請(qǐng)參見【產(chǎn)品/功能變更】RDS數(shù)據(jù)庫經(jīng)典網(wǎng)絡(luò)下線計(jì)劃和【下線公告】停止提供阿里云經(jīng)典網(wǎng)絡(luò)類型的ECS實(shí)例相關(guān)服務(wù)。
ECS實(shí)例采用專有網(wǎng)絡(luò)而RDS實(shí)例采用經(jīng)典網(wǎng)絡(luò)的場(chǎng)景:
方法一(推薦):將RDS實(shí)例從經(jīng)典網(wǎng)絡(luò)切換為專有網(wǎng)絡(luò)(需要切換到待連接的ECS實(shí)例所在的VPC)。具體操作,請(qǐng)參見更改網(wǎng)絡(luò)類型。
方法二:ECS實(shí)例使用RDS實(shí)例的公網(wǎng)地址連接RDS實(shí)例,這種方式的性能、安全性、穩(wěn)定性較差。如何申請(qǐng)外網(wǎng)地址,請(qǐng)參見申請(qǐng)SQL Server外網(wǎng)地址。
ECS實(shí)例采用經(jīng)典網(wǎng)絡(luò)而RDS實(shí)例采用專有網(wǎng)絡(luò)的場(chǎng)景:
方法一(推薦):將ECS實(shí)例從經(jīng)典網(wǎng)絡(luò)遷移到待連接的RDS實(shí)例所在的VPC,可在RDS實(shí)例詳情頁網(wǎng)絡(luò)類型右側(cè)單擊查看連接詳情查看RDS實(shí)例所在VPC ID。具體操作,請(qǐng)參見ECS實(shí)例從經(jīng)典網(wǎng)絡(luò)遷移到專有網(wǎng)絡(luò)。
方法二:開通ClassicLink功能,使經(jīng)典網(wǎng)絡(luò)的ECS實(shí)例可以和VPC中的RDS實(shí)例通過內(nèi)網(wǎng)互通。
說明若開通ClassicLink功能后網(wǎng)絡(luò)不通,請(qǐng)參見建立ClassicLink連接后經(jīng)典網(wǎng)絡(luò)和VPC網(wǎng)絡(luò)不通的排查思路。
方法三:ECS實(shí)例使用RDS實(shí)例的公網(wǎng)地址連接RDS實(shí)例,這種方式的性能、安全性、穩(wěn)定性較差。如何申請(qǐng)外網(wǎng)地址,請(qǐng)參見申請(qǐng)SQL Server外網(wǎng)地址。
如果ECS和RDS實(shí)例的網(wǎng)絡(luò)類型都是專有網(wǎng)絡(luò),則檢查ECS與RDS實(shí)例是否位于不同的VPC。
查看RDS實(shí)例的VPC ID。
查看ECS實(shí)例的VPC ID。
如果專有網(wǎng)絡(luò)不同,請(qǐng)參見以下方法進(jìn)行處理:
方法一(推薦):將ECS實(shí)例VPC遷移到RDS實(shí)例所在VPC。具體操作,請(qǐng)參見更換ECS實(shí)例的VPC。
方法二:將RDS實(shí)例VPC遷移到ECS實(shí)例所在VPC。具體操作,請(qǐng)參見切換專有網(wǎng)絡(luò)VPC和虛擬交換機(jī)。
方法三:在兩個(gè)VPC之間建立云企業(yè)網(wǎng)。
方法四:ECS實(shí)例使用RDS實(shí)例的公網(wǎng)地址連接RDS實(shí)例。這種方式的性能、安全性、穩(wěn)定性較差。如何申請(qǐng)外網(wǎng)地址,請(qǐng)參見申請(qǐng)SQL Server外網(wǎng)地址。
檢查白名單是否設(shè)置成了
0.0.0.0
,正確格式應(yīng)該為0.0.0.0/0
。重要0.0.0.0/0
表示允許任何IP訪問RDS實(shí)例,有安全風(fēng)險(xiǎn),請(qǐng)謹(jǐn)慎使用。檢查ECS實(shí)例中配置的RDS內(nèi)網(wǎng)地址和端口是否正確。更多詳情,請(qǐng)參見查看內(nèi)外網(wǎng)地址和端口。
ECS以外的設(shè)備無法訪問RDS的解決辦法
建議在訪問RDS時(shí)使用內(nèi)網(wǎng)域名而不是IP地址,IP地址可能隨著實(shí)例的遷移而變動(dòng)。
ECS以外的設(shè)備訪問RDS時(shí),只能通過外網(wǎng)連接。如果連接失敗,請(qǐng)參見如下方法解決。
檢查您使用的連接地址是否為RDS的內(nèi)網(wǎng)地址。
您需要修改連接地址為RDS外網(wǎng)地址。如何獲取外網(wǎng)地址,請(qǐng)參見查看外網(wǎng)連接地址。
說明ECS和DMS以外的設(shè)備無法通過內(nèi)網(wǎng)訪問RDS(除非使用物理專線)。
檢查是否已設(shè)置RDS白名單。如果未設(shè)置,請(qǐng)參見設(shè)置白名單。
檢查白名單是否設(shè)置成了
0.0.0.0
,正確格式為0.0.0.0/0
。重要0.0.0.0/0
表示允許任何IP訪問RDS實(shí)例,有安全風(fēng)險(xiǎn),請(qǐng)謹(jǐn)慎使用。如果您已設(shè)置白名單,但還是連接失敗,很可能是因?yàn)槟诎酌麊沃刑砑拥脑O(shè)備公網(wǎng)IP地址并非設(shè)備真正的出口IP地址。原因如下所示:
公網(wǎng)IP地址不固定,可能會(huì)變動(dòng)。
IP地址查詢工具或網(wǎng)站查詢的公網(wǎng)IP地址不準(zhǔn)確。
說明如何確認(rèn)設(shè)備公網(wǎng)IP地址,請(qǐng)參見SQL Server如何確定外部服務(wù)器/客戶端的公網(wǎng)IP地址。
適用于
云數(shù)據(jù)庫RDS SQL Server版