2014-10-30 66 views
2

我試圖將位於我的VPS上的現有mysql數據庫傳輸到AWS RDS。從VPS連接到RDS

我已經RDS設置,我能夠通過SSH連接到我的EC2實例之一,使用這個命令連接到服務器就好了:

mysql -uuser -p -hxx.xx.us-west-2.rds.amazonaws.com 

然而,當我嘗試從連接我的VPS(通過SSH)我收到一個錯誤2003,我相信是權限被拒絕。

我怎麼設置我的安全組似乎沒有關係。我將入站設置爲允許從我的服務器IP訪問端口3306,但這並不起作用,我甚至試圖在入站規則的任何位置允許所有端口上的所有流量,但我仍然無法連接。出境一直是完全開放的。

如果任何人都可以看到我缺少的任何東西,我真的很感激一些幫助。

謝謝。

+0

您是否正在使用RDS或安裝在EC2計算機上的mysql?這些是兩個不同的東西,你似乎混在一起了。您可以允許EC2計算機上的「所有端口上的所有流量」,但不允許RDS(另一個安全組或CIDR/IP)。 – 2014-10-30 18:04:43

+0

我正在使用rds。 EC2上沒有數據庫,但EC2實例上的應用程序將使用RDS作爲數據庫。我有一個現有的數據庫,我想從我的VPS轉移到RDS。在我允許安全組中所有端口上的所有通信(安全組用於RDS而非EC2)之前,我只嘗試過允許我的CIDR/IP。這是不成功的。 – mbacon40 2014-10-30 18:44:31

+0

根據以下答案,確保您1)正在使用創建實例時提供的主機字符串,用戶和數據庫2)將EC2安全組添加到RDS安全組3)可能將數據庫從VPS轉儲到EC2機器並從那裏將其導入RDS。 – 2014-10-30 19:10:22

回答

3

如果您想在外部訪問它,請確保您的RDS實例設置爲public。如果實際上它不可公開訪問,那麼您將需要重新創建實例並導入數據,或者創建一個快照並從快照重建您的RDS實例。

您只有一次機會修改它,這是在實例創建。

enter image description here

如果你這樣做,那麼要確保安全組只能從一個特定的IP地址允許或者,如果你使用MySQL工作臺通過EC2實例使用SSH密鑰,而使用SSH隧道。

0

user您在RDS中手動創建的用戶,還是創建實例時創建的管理員用戶?如果是前者,那麼確保您已授予遠程VPS對該用戶的訪問權限。

此外,從您的VPS,請確保您可以打開到數據庫的TCP連接。嘗試:

$ nc -v -z xx.xx.us-west-2.rds.amazonaws.com 3306

如果連接成功,但這裏仍無法與MySQL CLI連接,您的用戶名/密碼/數據庫連接信息的問題。

+0

當我運行這個時,我得到-bash:nc:命令未找到 – mbacon40 2014-10-30 18:52:43

+0

安裝netcat,或者使用telnet,如果有的話。 – 2014-10-30 19:15:48