2012-07-31 171 views
12

我創建了一個名爲realcardiodb的RDS實例(引擎是mysql) 並且我從本地主機導出了我的數據庫。文件保存在本地名爲localhostrealcardio.sql如何將本地MySQL數據庫導入RDS數據庫實例?

大多數研究表明,使用mysqldump將數據從本地系統導入到Web服務器,但我的系統甚至不能識別mysqldump。

C:\xampp\mysql>mysqldump 
'mysqldump' is not recognized as an internal or external command, operable program or batch file. 

如何解決這個錯誤,我應該使用mysqldump? (我絕對在我的系統上安裝了mysql)

我應該使用更好的工具嗎?

任何幫助表示讚賞,特別是如果你有經驗導入mysql到aws rds。

謝謝! DK

更新2012/7/31 所以我得到了錯誤解決。 mysqldump的是bin目錄C:\ XAMPP的\ mysql的\ BIN> mysqldump的 AWS提供了上傳本地數據庫RDS的folloinwg說明:

mysqldump acme | mysql --host=hostname --user=username --password acme 

有人可以打破這種下來嗎?

1)第一個'acme'(在mysqldump命令之後)我的本地數據庫的名稱或我本地保存的導出的sql文件的名稱?

2)主機名是IP地址,公共DNS,RDS端點還是兩者都不是?

3)我認爲用戶名和密碼是RDS憑證,第二個acme是我在RDS中創建的數據庫的名稱。

謝謝!

+0

看起來像這可能是簡單的[作爲一個PATH環境變量問題。](http://forums.mysql.com/read.php?28,24329,24375#msg-24375)害怕我忍不住更多。我不是Windows用戶。 – Christopher 2012-07-31 13:28:43

回答

31

這就是我爲MySQl表中有數據的情況做的。

創建一個RDS數據庫實例的步驟: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html

注:確保RDS實例配置了安全組,涉及到的EC2安全組。 http://docs.amazonwebservices.com/AmazonRDS/latest/UserGuide/USER_Workin ...

我們前進之前,讓我提供什麼樣以下一些佔位符列表如下:

  • host.address.for.rds.server =這將是所謂作爲RDS描述/設置頁面中的「終點」。
  • rdsusername =您在RDS設置期間創建的主用戶帳戶。
  • rdsdatabase =您在RDS實例中的服務器內部創建的空白數據庫。
  • backupfile.sql =您的預先存在的安裝的數據庫的SQL轉儲文件。

一旦你創建了一個新的RDS數據庫實例,並配置其安全設置,登錄到該服務器(從SSH會話內的EC2服務器),然後創建一個使用基本的實例裏面一個空數據庫SQL命令。

mysql -h host.address.for.rds.server -P 3306 -u rdsusername -p 
(enter your password) 
create database rdsdatabase; 

然後退出RDS服務器內部的MySQL環境。

\q 

本教程假定您已經從舊數據庫備份。如果你不這樣做,現在就去創建一個。之後,您已準備好將該SQL轉儲文件導入等待您的RDS服務器的空數據庫中。

mysql -h host.address.for.rds.server -u rdsusername -p rdsdatabase < backupfile.sql 

根據sql轉儲文件的大小,可能需要幾秒鐘才能完成。您完成的指示是bash命令提示符重新出現。

注意:將數據直接導入到數據庫中的現有表時使用命令「mysqlimport」。看起來我們正在「導入」數據,但這不是我們在這種情況下實際做的。我們正在遷移到的數據庫目前還沒有表,並且我們正在使用的sql轉儲文件包含sql命令來生成它所需的表。

確認轉移

現在,如果你沒有得到任何錯誤信息,那麼你的SQL可能轉移工作。如果你願意,你可以通過連接到你的RDS數據庫服務器,查看你創建的數據庫,然後檢查表是否存在,來仔細檢查它是否做到了。

mysql -h host.address.for.rds.server -P 3306 -u rdsusername -p 
(enter your password) 
use rdsdatabase; 
show tables; 
+0

第一個鏈接已死亡。你能檢查一下嗎? – SkyWalker 2016-12-02 12:18:01

+0

@David Csonka在哪裏我需要保留我的backupfile.sql? – DD77 2016-12-24 08:01:09

+1

@SkyWalker我用固定的鏈接編輯了答案。 – acobster 2017-01-12 18:24:37

0

這裏是AWS RDS Mysql的文件導入客戶數據到RDS

http://aws.amazon.com/articles/2933

  • 創建包含數據平面文件要被加載
  • 停止訪問目標DB的任何應用程序實例
  • 創建數據庫快照
  • 禁用阿瑪ZON RDS自動備份
  • 負載使用的mysqlimport
  • 數據使能自動備份再次
16

我更喜歡使用MySQL的工作臺。比命令行方式更容易用戶友好。

它提供了一個簡單的GUI。

MySQL工作臺或SQL Yog。

這些是我做的步驟。

1)安裝MySQL Workbench。

2)在AWS控制檯中,您的RDS實例必須有一個安全組。 將入站規則添加到該組,以允許來自您的計算機的連接。 很簡單。添加您的IP地址。

3)打開MySQL工作臺,添加一個新的連接。

4)給連接一個你喜歡的名字。

5)選擇連接方法 - 標準TCP/IP

6)在主機名的字段中輸入您的RDS端點。

7)端口:3306

8)用戶名:主用戶名(你創建你的RDS實例的過程中創建的一個)

9)密碼:主密碼

10)點擊測試連接以檢查您的連接。

11)如果連接成功,請單擊確定。

12)打開連接。

13)你會在那裏看到你的數據庫'realcardiodb'。

14)現在你可以將你的mysqldump文件導出到這個數據庫。轉到 - >服務器。點擊數據導入。

15)您可以通過簡單地打開空白SQL文件來檢查數據是否已被遷移&在基本SQL命令中輸入如use database,select * from table;

就是這樣。中提琴。

+0

當您使用嚮導創建RDS實例時,將使用諸如「rds-launch-wizard」之類的組自動爲您創建包含計算機IP地址的安全組。 – johnnieb 2017-01-27 21:37:53

3

如果您的PC中有backup.sql,則無需轉移到EC2。只需在PC上的終端上輸入以下內容即可。

$ mysql -h rdsinstance-hostaddress-ending.rds.amazonaws.com -u rds_username -p rds_database < /path/to/your/backup.sql 

輸入密碼:paswd_mysql_user

這就是全部。

導入備份直接從現有的遠程服務器

SSH連接到遠程服務器

獲取遠程服務器的MySQL備份(備份/路/ backupfile.sql)

導入備份文件RDS mysql當你在遠程服務器的外殼上時

mysql -h your-mysql-instance.region.rds.amazonaws.com -u db_username -p db_name < backup/path/backupfile.sql 

注意:

我已經嘗試了所有上述條件,將我現有的備份導入到新的RDS數據庫,包括通過EC2在AWS文檔中。這是一個10GB的備份。所以我也嘗試過用表格表格。它顯示進程已完成,但大型表中缺少一些數據。所以我不得不寫一個DB到DB數據遷移腳本。

相關問題