摘要:自從購買了RDS實例,連接失敗的問題就伴隨着我,真是太難了。不要害怕,不要着急,跟着小雲妹,讀了本篇雲小課,讓你風里雨里,實例連接自此暢通無阻! 順着以下幾個方面進行排查,問題就可以迎刃而解~
小A:我的實例連接失敗了,但就是找不出原因
小B:我的實例剛還行,怎么忽然就連不上了
小C:我的……
自從購買了RDS實例,連接失敗的問題就伴隨着我,我真是太難了。不要害怕,不要着急,跟着小雲妹,讀了本篇雲小課,讓你風里雨里,實例連接自此暢通無阻!
順着以下幾個方面進行排查,問題就可以迎刃而解~
1. 排除數據庫實例異常
關系型數據庫系統故障,實例狀態異常,實例或表被鎖定都可能會導致實例異常,可以嘗試實例重啟功能解決。
2. 使用正確的客戶端連接方式
建議安裝不低於數據庫實例版本的引擎客戶端。
3. 使用正確的SSL方式安全連接
o (推薦)SSL方式:實例連接管理頁面的SSL開關開啟,並且上傳證書到ECS。
mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem
o 普通方式:實例基本信息頁面的SSL開關關閉。
mysql -h 172.16.0.31 -P 3306 -u root -p
4. 排除連接命令錯誤
包括連接地址、端口參數配置、用戶名和密碼、SSL方式錯誤,請正確配置參數項,並重試連接實例。
SSL內網連接MySQL示例:mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem
o 連接地址
目標實例的“連接管理”頁面,“內網連接”頁簽的“內網地址”。
o 數據庫端口
目標實例的“連接管理”頁面,“內網連接”頁簽的“數據庫端口”。
o 用戶名和密碼
root管理員帳號及其對應的密碼。
o 證書名稱
SSL證書文件名,該文件需放在執行該命令的路徑下。
SSL公網連接MySQL示例:mysql -h 公網地址 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem
o 連接地址
目標實例的“連接管理”頁面,“公網連接”頁簽的“彈性公網IP”。
o 數據庫端口
目標實例的“連接管理”頁面,“公網連接”頁簽的“數據庫端口”。
o 用戶名和密碼
root管理員帳號及其對應的密碼。
o 證書名稱
SSL證書文件名,該文件需放在執行該命令的路徑下。
5. 排除網絡不通
內網訪問
1).檢查ECS與RDS是否在同一個區域,VPC。
不同區域的雲服務之間內網互不相通,無法訪問實例。請就近選擇靠近您業務的區域,可減少網絡時延,提高訪問速度。
不同VPC下,支持將ECS的虛擬私有雲切換為與RDS實例一致,或使用VPC對等連接,為兩個不同的虛擬私有雲建立對等連接,實現內網互通。
2).檢查安全組規則。
安全組外訪問安全組內的RDS實例時,需要為安全組添加相應的入方向規則。
3).在ECS上測試是否可以正常連接到RDS實例地址的端口。
telnet <連接地址> <端口號>
公網訪問
1).檢查安全組規則。
安全組外訪問安全組內的RDS實例時,需要為安全組添加相應的入方向規則。
2).檢查網絡ACL規則。
進入虛擬私有雲網絡ACL列表,確認EIP綁定的網卡在網絡ACL關聯的子網下,並查看網絡ACL狀態。如果為“開啟”,需要添加ICMP放通規則進行流量放通。
3).相同區域主機進行ping測試。
如果在原ECS上沒有ping通RDS實例綁定的EIP,請在相同區域的另一台ECS上去ping該EIP,如果可以正常ping通,說明虛擬網絡正常。
6. 排除實例的連接數滿的情況
1).查看實例的連接數指標是否已達上限。
2).請及時排查業務側連接是否有效,優化實例連接,釋放不必要的連接。
3).雲監控服務目前可以監控數據庫CPU、內存、磁盤、連接數等指標,並且設置告警策略,出現告警時可以提前識別風險。
7. 連接失敗的常見報錯
o ERROR 2013:Lost connection to MySQL server during query
連接超時參數“wait_timeout”和“interactive_timeout”設置過小時,MySQL會自動斷開超時的空連接。具體請參見MySQL客戶端連接實例后會自動斷開。
o ERROR 1045 (28000): Access denied for user ‘root'@‘192.168.0.30' (using password:YES)
排除是否密碼錯誤問題,確認該主機是否有連接數據庫實例的權限,以及MySQL客戶端和實例VIP是否可以連通,具體請參見連接RDS實例失敗的常見報錯。
o ERROR 1226 (42000):User‘test' has exceeded the‘max_user_connections' resource (current value:10)
排查是否限制了實例的連接數,導致連接失敗,具體請參見連接RDS實例失敗的常見報錯。
o ERROR 1129 (HY000): Host ‘192.168.0.111' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
排查是否由於MySQL客戶端連接數據庫的失敗次數(不包括密碼錯誤),超過了max_connection_errors的值,導致連接失敗,具體請參見連接RDS實例失敗的常見報錯。
o [Warning] Access denied for user 'username'@'yourIp' (using password: NO)
連接MySQL和PostgreSQL實例時出現該報錯,請檢查用戶名或密碼是否正確。
o [Warning] Access denied for user 'username'@'yourIp' (using password: YES)
連接MySQL和PostgreSQL實例時出現該報錯,請檢查用戶名或密碼是否正確。
o Login failed for user 'username'
連接SQL Server實例時出現該報錯,請檢查用戶名或密碼是否正確。
雲數據庫RDS不但支持客戶端方式連實例,還對接了DAS服務,使用DAS可視化界面連接並管理數據庫,安全又簡單。
趕緊戳這里了解詳情吧~~