本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從外部 MySQL 資料庫將資料匯入至 Amazon RDS for MySQL 資料庫執行個體
您可將資料從現有的 MySQL 資料庫匯入至 RDS for MySQL 資料庫執行個體。方法是以 mysqldumpmysqldump 命令列公用程式普遍用於製作備份,以及將資料從 MySQL 伺服器傳輸至另一個伺服器。MySQL 用戶端軟體隨附這個程式。
注意
如果您要使用 MySQL 資料庫執行個體匯入或匯出大量資料,使用 xtrabackup 備份檔案和 Amazon S3 將資料移入和移出 Amazon RDS,會更加可靠且更快速。如需詳細資訊,請參閱將備份還原至 Amazon RDS for MySQL 資料庫執行個體。
典型的 mysqldump 命令會將資料從外部資料庫移入 Amazon RDS 資料庫執行個體,如下列範例所示。將值取代為您自己的資訊。
mysqldump -ulocal_user\ --databasesdatabase_name\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocal_password| mysql -uRDS_user\ --port=port_number\ --host=host_name\ -pRDS_password
重要
切勿在 -p 選項與輸入的密碼間插入空白。
指定此範例中所顯示提示以外的憑證,作為安全最佳實務。
請確認您了解下列建議和注意事項:
-
從傾印檔案中排除下列結構描述:
-
sys -
performance_schema -
information_schema
mysqldump公用程式已預設排除這些結構描述。 -
-
如需遷移使用者與權限,建議您使用可產生資料控制語言 (DCL) 以重建使用者與權限的工具,例如 pt-show-grants
公用程式。 -
若要執行匯入,請確認執行此程序的使用者能夠存取資料庫執行個體。如需詳細資訊,請參閱 使用安全群組控制存取。
使用的參數如下:
-
-u– 用來指定使用者名稱。首次使用此參數時,需在local_user--databases參數所識別的本機 MySQL 資料庫中指定使用者帳戶名稱。 -
--databases– 在您要匯入至 Amazon RDS 的本機 MySQL 執行個體上,指定資料庫名稱。database_name -
--single-transaction– 確保從本機資料庫負載的所有資料均與單一時間點一致。如有其他程序在mysqldump讀取資料時變更資料,使用此參數有助於維持資料完整性。 -
--compress– 在本機資料庫的資料傳送到 Amazon RDS 前先完成壓縮,以減少耗用的網路頻寬。 -
--order-by-primary– 以資料的主索引鍵排序各資料表的資料,以減少載入時間。 -
--routines– 如果預存程序或函數等常式存在於您要複製的資料庫中,則應使用。將參數設定為0,這會在匯入程序期間排除常式。然後,在 Amazon RDS 資料庫中手動重新建立常式。 -
--triggers– 如果觸發程序存在於您要複製的資料庫中,則應使用。將參數設定為0,這會在匯入程序期間排除觸發程序。然後,在 Amazon RDS 資料庫中手動重新建立觸發程序。 -
--events– 如果事件存在於您要複製的資料庫中,則應使用。將參數設定為0,這會在匯入程序期間排除事件。然後,在 Amazon RDS 資料庫中手動重新建立事件。 -
-p– 用來指定密碼。首次使用此參數時,請指定您以第一個local_password-u參數識別的使用者帳戶的密碼。 -
-u– 用來指定使用者名稱。第二次使用此參數時,需在RDS_user--host參數所識別的 MySQL 資料庫執行個體的預設資料庫上,指定使用者帳戶名稱。 -
--port– 用於指定 MySQL 資料庫執行個體的連接埠。預設值為 3306,除非您在建立資料庫執行個體時另行變更。port_number -
--host– 用來指定 Amazon RDS 資料庫執行個體端點的網域名稱系統 (DNS) 名稱,例如 。host_namemyinstance.123456789012.us-east-1.rds.amazonaws.com您可在 Amazon RDS 主控台的資料庫執行個體詳細資訊中找到端點值。 -
-p– 用來指定密碼。第二次使用此參數時,需指定第二個RDS_password-u參數所識別的使用者帳戶密碼。
必須在 Amazon RDS 資料庫中手動建立預存程序、觸發程序、函數或事件。如果您正在複製的資料庫中存有上述物件,則請在執行 mysqldump 時排除這些物件。為此,請在 mysqldump 命令中包含下列參數:
-
--routines=0 -
--triggers=0 -
--events=0
範例
下列範例會將本機主機上的 world 範例資料庫複製到 RDS for MySQL 資料庫執行個體。將值取代為您自己的資訊。
在 Linux、macOS 或 Unix 中:
sudo mysqldump -ulocal_user\ --databasesworld\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocal_password| mysql -urds_user\ --port=3306\ --host=my_instance.123456789012.us-east-1.rds.amazonaws.com\ -pRDS_password
在 Windows 中:
在命令提示字元中執行下列命令,方法是對 Windows 程式功能表中的命令提示字元按一下滑鼠右鍵,然後選擇以系統管理員身分執行。將值取代為您自己的資訊。
mysqldump -ulocal_user^ --databasesworld^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocal_password| mysql -uRDS_user^ --port=3306^ --host=my_instance.123456789012.us-east-1.rds.amazonaws.com^ -pRDS_password
注意
指定此範例中所顯示提示以外的憑證,作為安全最佳實務。