本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將資料從外部 MySQL 資料庫匯入 Amazon RDS for MySQL 資料庫執行個體
您可以將現有 MariaDB 或 MySQL 資料庫的資料匯入 RDS for MariaDB 或 RDS for MySQL 資料庫執行個體。您可以使用 mysqldumpmysqldump
命令列公用程式普遍用於製作備份,以及將資料從 MariaDB 或 MySQL 伺服器傳輸到另一個伺服器上。MySQL 和 MariaDB 用戶端軟體皆隨附這個程式。
在 MariaDB 10.5 中,用戶端稱為 mariadb-dumpmariadb-dump
而非 mysqldump
。
注意
如果您要使用 MySQL 資料庫執行個體匯入或匯出大量資料,則使用xtrabackup
備份檔案和 Amazon S3 將資料移入和移出 Amazon RDS 會更可靠且更快速。如需詳細資訊,請參閱將備份還原至 Amazon RDS for MySQL 資料庫執行個體。
Amazon RDS 不支援 xtrabackup
MariaDB 或 mariabackup
。Amazon RDS 僅支援從 Amazon S3 for MySQL 匯入。
將資料從外部資料庫移至 Amazon RDS 資料庫執行個體的典型mysqldump
命令看起來類似下列範例。將值取代為您自己的資訊。對於 MariaDB 11.0.1 及更高版本,請將 取代mysqldump
為 mariadb-dump
,將 取代mysql
為 mariadb
。
mysqldump -u
local_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
和mariadb-dump
公用程式會排除這些結構描述。 -
-
如需遷移使用者與權限,建議您使用可產生資料控制語言 (DCL) 以重建使用者與權限的工具,例如 pt-show-grants
公用程式。 -
若要執行匯入,請確認執行此程序的使用者能夠存取資料庫執行個體。如需詳細資訊,請參閱 使用安全群組控制存取。
使用的參數如下:
-
-u
– 用來指定使用者名稱。在此參數的第一次使用中,指定您使用local_user
--databases
參數識別的本機 MariaDB 或 MySQL 資料庫上的使用者帳戶名稱。 -
--databases
– 在您要匯入至 Amazon RDS 的本機 MariaDB 或 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
參數識別之 MariaDB 或 MySQL 資料庫執行個體的預設資料庫上的使用者帳戶名稱。 -
--port
– 用於指定 MariaDB 或 MySQL 資料庫執行個體的連接埠。根據預設,除非您在建立資料庫執行個體時變更 值,否則這是 3306。port_number
-
--host
– 用來指定 Amazon RDS 資料庫執行個體端點的網域名稱系統 (DNS) 名稱,例如 。host_name
myinstance.123456789012.us-east-1.rds.amazonaws.com
您可以在 Amazon RDS 主控台的資料庫執行個體詳細資訊中找到端點值。 -
-p
– 用來指定密碼。第二次使用此參數時,需指定第二個RDS_password
-u
參數所識別的使用者帳戶密碼。
必須在 Amazon RDS 資料庫中手動建立預存程序、觸發程序、函數或事件。如果您在要複製的資料庫中有這些物件,請在執行 mysqldump
或 時排除它們mariadb-dump
。若要這麼做,請在 mysqldump
或 mariadb-dump
命令中包含下列參數:
-
--routines=0
-
--triggers=0
-
--events=0
範例
下列範例會將本機主機上的world
範例資料庫複製到 RDS for MySQL 資料庫執行個體。將值取代為您自己的資訊。若要將範例資料庫複製到 RDS for MariaDB 資料庫執行個體,請將 mysqldump
取代為 mariadb-dump
,並將 取代mysql
為 mariadb
。
對於 Linux、 macOS或 Unix:
sudo mysqldump -u
local_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 程式功能表上按一下滑鼠右鍵,然後選擇以管理員身分執行。將值取代為您自己的資訊。若要將範例資料庫複製到 RDS for MariaDB 資料庫執行個體,請將 mysqldump
取代為 mariadb-dump
,並將 取代mysql
為 mariadb
。
mysqldump -u
local_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
注意
作為安全最佳實務,請指定範例中顯示的提示以外的登入資料。