2014-01-27 116 views
2

我已經創建了亞馬遜RDS一個MySQL實例,它給了我吧以下設置: enter image description here通過MySQL工作臺連接到Amazon RDS

我試圖連接到這個MySQL服務器通了MySQL Workbench和它總是說SSH隧道沒有被認證。

我試圖通過命令提示符連接到服務器,它工作正常。這裏是我使用的命令:

mysql -h ['Endpoint' from setting] --ssl_ca=C:\Users\Jason\Downloads\mysql-ssl-ca-cert.pem -P 3306 - u ['Username' from setting] -p 

這提示我輸入密碼,它工作正常!

現在,當我與MySQL工作臺嘗試,我得到的錯誤,並在日誌中這樣說:

error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 
19:17:39 [ERR][  SSH tunnel]: Authentication error opening SSH tunnel: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details 

這裏是設置:

SSH HostName: ['Endpoint' from settings] 
SSH Username: ['Username' from settings] 
SSH Password: password 
SSH Key File: C:\Users\Jason\Downloads\mysql-ssl-ca-cert.pem 
MySQL HostName: ['Endpoint' from settings] 
MySQL Server Port: 3306 
Username: ['Username' from settings] 
Password: password same as SSH password 
Default Schema: ['DB Name' from settings] 

有一點要注意的是,我當我能夠通過Workbench成功連接到服務器時,在服務器上運行了以下命令。

GRANT USAGE ON *.* TO 'username'@'%' REQUIRE SSL; 

此外,我在RDS的「數據庫安全組」下給出了本地IP地址(CIDR/IP)訪問權限。

回答

14

爲什麼在MySQL Workbench中嘗試SSH選項,如果命令行中的連接顯然不使用SSH?從連接設置中刪除它。

改爲建立正常的TCP/IP連接,將MySQL主機設置爲您的端點。切換到SSL設置頁面並激活SSL +設置您的證書文件位置,就像您在命令行上所做的那樣。

附加信息:

SSH是MySQL工作臺與所述遠程系統的通信(文件訪問,服務器控制等,也參見http://en.wikipedia.org/wiki/Secure_Shell)。如果您只想執行MySQL工作(運行查詢),則不需要SSH連接。它需要在終點上運行一個正在運行的SSH服務器來創建隧道。如果要管理服務器(編輯配置文件,控制服務器進程等)或者服務器不可直接訪問(例如,在不允許與MySQL通信的防火牆後面),則需要創建SSH連接端口,出於安全原因)。對於Windows,使用WMI還有一個本地網絡的解決方案。

SSL是MySQL客戶端和服務器之間通信的加密(http://en.wikipedia.org/wiki/Transport_Layer_Security)。它是MySQL用於通信的協議的一部分,並且完全獨立於MySQL Workbench或任何SSH隧道。

+0

你是對的!那麼這兩種連接類型之間有什麼區別,因爲兩者都要求SSL? – jmogera

+0

更新了我的答案。 –