本文介紹如何使用Percona XtraBackup工具,將RDS MySQL的物理備份文件恢復到自建數據庫。
背景
RDS MySQL支持將實例備份文件恢復到自建數據庫,當前支持物理備份文件恢復、邏輯備份文件恢復等多種方式。如何選擇數據恢復方案,請參見數據恢復方案概覽。
您可以前往RDS管理控制臺,在左側導航欄選擇備份恢復,然后在基礎備份列表 > 數據備份中查看實例備份的類型。
如果沒有物理備份,可以手動創建備份后,再進行本文操作。創建方法,請參見手動備份。
應用場景
如果您未來一段時間不再使用RDS MySQL,可以使用本方案,將RDS MySQL數據庫的物理備份恢復到本地自建數據庫,從而保留RDS MySQL中的數據。
如果您的實例已釋放無法找回,而您保存有下載好的物理備份文件,可使用本方案,將RDS MySQL數據庫的物理備份恢復到本地自建數據庫。
前提條件
RDS MySQL實例基礎配置需滿足以下條件:
大版本:8.0、5.7、5.6、5.5
系列:高可用系列
存儲類型:本地SSD盤
說明您可以前往實例基本信息頁面查看以上信息。
僅如上版本的實例支持下載物理備份。如果您的實例是基礎系列實例,請參見本文常見問題。
RDS實例中的表未通過TDE加密。
重要實例中如果存在加密過的表,會導致恢復過程出錯,請先在下載備份文件前,對已加密的表執行設置透明數據加密TDE。
您可在RDS控制臺目標實例數據安全性TDE頁面查看TDE開啟狀況。
RAM賬號需要具備下載備份文件的權限。如需為RAM賬號授權,請參見添加下載備份文件權限給只讀子賬號。
使用限制
本方案僅適用于本地盤實例的物理備份文件恢復。如果您需要恢復云盤實例的快照備份,請參見RDS MySQL快照備份文件恢復到自建數據庫。
本方案用于恢復備份文件中的全部數據。如僅需恢復部分庫表,請參見RDS MySQL邏輯備份文件恢復到自建數據庫。
目前僅支持將RDS MySQL的物理備份文件恢復到安裝在Linux系統中的自建MySQL數據庫中。
本方案暫不支持MGR(MySQL Group Replication)集群的數據恢復。
影響
如果您當前的自建數據庫正在運行其他業務,將RDS MySQL物理備份恢復到此數據庫后,原有業務將不可用。
本文介紹的恢復方案中,是將數據恢復到一個新建的數據庫數據目錄中,對自建數據庫中原數據無影響。
技術實現
本文介紹的物理備份恢復方式主要是通過如下流程實現的:
在RDS MySQL的管理控制臺中,對數據庫進行全量物理備份。
將物理備份文件下載到本地,然后通過
qpress
工具進行解壓。使用
Percona XtraBackup
工具,將解壓后的備份文件恢復到自建數據庫的數據目錄中。重啟數據庫后,即可在自建數據庫中查看到原先位于RDS MySQL中的數據。
注意事項
備份下載地址鏈接獲取后有效時間僅有一個小時。超過有效時間后您可刷新頁面獲取最新鏈接下載即可。
請勿修改或刪減備份文件中的內容,修改或刪減操作可能會導致備份文件損壞且無法恢復,如需修改,請恢復到自建數據庫后,再進行修改操作。
費用說明
準備工作
環境準備
本文以
CentOS 7.9 64位
的Linux系統為例,其他Linux發行版本,請適配相關命令。部署自建MySQL數據庫,其中數據庫大版本與RDS MySQL的大版本必須相同(例如都是8.0)。
您可以使用如下命令查詢自建數據庫大版本。
mysql --version
查詢您的自建數據庫的配置文件路徑。
本文示例中涉及的數據庫配置文件路徑如下:
MySQL 8.0、5.7為
/etc/my.cnf
。MySQL 5.6為
/usr/my.cnf
。MySQL 5.5需要手動創建,使用
echo "[mysqld]" | sudo tee /etc/my.cnf
命令創建。
您可以使用如下命令查詢自建數據庫的配置文件路徑。
sudo find / -name my.cnf
說明如果您的查詢結果不一致,請在執行后續命令時,根據實際情況修改。
創建備份解壓路徑(
mysql_bkdata
),用于存放解壓后的備份文件。您可以使用如下命令創建備份解壓目錄。
sudo mkdir /var/mysql_bkdata sudo chown -R $USER:$USER /var/mysql_bkdata
說明上述命令的
$USER:$USER
表示從環境變量中獲取當前用戶及用戶組,無需修改。創建數據庫數據目錄(
mysql_newdata
),用于將備份文件恢復到此目錄,啟動數據庫時使用此目錄的數據。您可以使用如下命令創建數據目錄。
sudo mkdir /var/mysql_newdata sudo chown -R $USER:$USER /var/mysql_newdata
說明上述命令的
$USER:$USER
表示從環境變量中獲取當前用戶及用戶組,無需修改。
工具準備
安裝備份恢復工具Percona XtraBackup。
如果是MySQL 8.0實例,請根據實際主機環境下載對應版本的XtraBackup工具,下載后再安裝。
重要由于RDS MySQL 8.0有新增Redo類型,開源版本的Percona XtraBackup可能存在兼容性問題。因此請下載下表RDS提供的XtraBackup工具。
主機環境
XtraBackup 8.0工具下載入口
安裝命令示例
說明本示例將工具下載至
/Xtrabackup8.0
目錄下,實際安裝命令會因目錄不同而有所變化,請以實際工具下載位置為準調整安裝命令。Linux 6(基于x86_64架構)
sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios6.x86_64
Linux 7(基于x86_64架構)
sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.x86_64.rpm
Linux 7(基于ARM AArch64架構)
sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.aarch64.rpm
Linux 8(基于ARM AArch64架構)
sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.al8.aarch64.rpm
說明安裝完成后,Percona XtraBackup的可執行文件將位于
/u01/xtrabackup80/bin
目錄下,該目錄路徑默認不會被添加到Linux系統的PATH
環境變量中。若要方便未來在任何目錄下直接執行Percona XtraBackup命令,您有兩種方法:
在執行Percona XtraBackup命令時,使用完整路徑(本文多處命令均采用該方式)。例如
/u01/xtrabackup80/bin/xtrabackup --xxxxxx
。手動將
/u01/xtrabackup80/bin
目錄添加到系統的PATH
環境變量中。
如果是MySQL 5.7、5.6或5.5實例,下載并安裝Percona XtraBackup 2.4,具體請參見Percona XtraBackup 2.4。
本文以
Percona XtraBackup 2.4.28
為例,安裝命令如下:wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm sudo yum localinstall -y percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm
安裝解壓工具qpress。
## 下載可執行文件的tar包 wget "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20230406/flxd/qpress-11-linux-x64.tar" ## 解壓下載的tar包,取出可執行文件 tar -xvf qpress-11-linux-x64.tar ## 設置qpress文件的執行權限 sudo chmod 775 qpress ## 拷貝qpress到/usr/bin中 sudo cp qpress /usr/bin
1. 下載備份文件
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側導航欄單擊備份恢復。
在基礎備份列表 > 數據備份中,找到目標物理備份,單擊操作列的實例備份下載。
如果沒有物理備份文件,您可以采用手動備份方式進行物理備份,具體操作,請參見手動備份。
如果單擊實例備份下載后,跳轉至高級下載頁面,則表示您的RDS實例為云盤實例,請參見RDS MySQL快照備份文件恢復到自建數據庫進行恢復。
在實例備份下載對話框,單擊復制內網地址或復制外網地址后的。
重要使用內網地址下載時,需要在同地域的VPC網絡中才可下載,在跨地域VPC以及經典網絡的服務器端無法下載。
通過外網鏈接下載備份數據時,超出外網下載免費額度后需要支付外網流量費用。更多信息,請參見費用說明。
備份下載地址鏈接獲取后有效時間僅有一個小時。超過有效時間后您可刷新頁面獲取最新鏈接下載即可。
請勿修改或刪減已備份的文件內容,可能造成備份文件損壞,無法恢復,如需修改,請恢復到自建數據庫后,再進行修改操作。
登錄本地自建MySQL所在的Linux服務器,執行如下命令下載物理備份。
wget -c 'https://****.bak.rds.aliyuncs.com/****_xb.qp?****' -O test_xb.qp
說明請將上述命令中的
https://****.bak.rds.aliyuncs.com/****_xb.qp?****
替換為實際復制的備份下載地址。備份文件下載后請您及時保存,避免泄露。本文示例將
test_xb.qp
作為另存的文件名,您可以自定義該文件名,但文件名后綴必須與下載地址里的后綴保持一致。目前RDS MySQL備份下載地址的后綴名存在兩種格式
_xb.qp
或_qp.xb
,您可以在下載鏈接中查看備份文件后綴格式。RDS MySQL 5.5的物理備份格式為
tar.gz
。
常見下載問題
Q:為什么下載數據文件會報錯?
A:使用
wget -c 'https://****.bak.rds.aliyuncs.com/****_xb.qp?****' -O test_xb.qp
命令下載時請用2個英文單引號(')將下載地址包裹起來,便于程序識別具體的地址,防止出錯。
2. 解壓備份文件
請根據備份文件的實際后綴,選擇相關命令解壓備份壓縮包。
請先參考準備工作章節,在自建庫所在服務器中安裝Percona XtraBackup
和qpress
后,再執行以下解壓命令。若不安裝,后續執行如下命令將失敗。
執行以下解壓命令時,請將test_xb.qp
替換為您另存為的備份文件名,/var/mysql_bkdata/
替換為您創建的備份解壓路徑。
### MySQL 8.0
qpress -do test_xb.qp | /u01/xtrabackup80/bin/xbstream -x -v -C /var/mysql_bkdata/
### MySQL 5.5/5.6/5.7
qpress -do test_xb.qp | xbstream -x -v -C /var/mysql_bkdata/
執行以下解壓命令時,請將test_qp.xb
替換為您另存為的備份文件名,/var/mysql_bkdata/
替換為您創建的備份解壓路徑。
## 步驟一:解包
cat test_qp.xb | xbstream -x -v -C /var/mysql_bkdata/
## 步驟二:解壓
### MySQL 5.5/5.6/5.7
innobackupex --decompress --remove-original /var/mysql_bkdata/
### MySQL 8.0
/u01/xtrabackup80/bin/xtrabackup --decompress --remove-original --target-dir=/var/mysql_bkdata/
執行以下解壓命令時,請將test.tar.gz
替換為您另存為的備份文件名,/var/mysql_bkdata/
替換為您創建的備份解壓路徑。
tar -izxvf test.tar.gz -C /var/mysql_bkdata/
執行以下解壓命令時,請將test.xb.gz
替換為您另存為的備份文件名,/var/mysql_bkdata/
替換為您創建的備份解壓路徑。
### MySQL 8.0
gzip -d -c test.xb.gz | /u01/xtrabackup80/bin/xbstream -x -v -C /var/mysql_bkdata/
### MySQL 5.5/5.6/5.7
gzip -d -c test.xb.gz | xbstream -x -v -C /var/mysql_bkdata/
常見解壓問題
Q:下載的備份文件解壓縮報錯怎么辦?
A:請根據如下步驟檢查或處理報錯:
確認您下載的文件是否為物理備份文件。
請確認壓縮文件保存的名稱后綴是否正確(使用URL中包含的文件名后綴
xb.qp
、.tar.gz
、.xb.gz
或_qp.xb
)。針對不同格式的壓縮文件,請使用本步驟提供的解壓命令。
常見的報錯如下:
執行解壓命令出現
sh: qpress: command not found
報錯。解決方法:請參考本文前提條件確認您自建庫所在服務器中是否已安裝解壓工具qpress。
備份文件類型為xbstream文件包(_qp.xb 后綴),執行解壓命令出現innobackupex未找到。
解決方法:請參考本文前提條件確認您自建庫所在服務器中是否已安裝Percona XtraBackup。
出現報錯:備份文件類型為xbstream文件包(_qp.xb 后綴),執行cat解包命令出現
can't change to dir to xx( errorcode:no such file or directory)
報錯。解決方法:報錯原因可能是命令中文件名或路徑錯誤引起,請確認文件名和路徑是否正確。
3. 恢復數據
恢復數據庫前,請先停止自建數據庫服務。
您可以使用ps -ef | grep '[m]ysql'
命令查看是否存在mysql
相關進程,并使用sudo kill -9 <PID>
將進程結束。
MySQL 8.0恢復
恢復前準備。
/u01/xtrabackup80/bin/xtrabackup --defaults-file=/var/mysql_bkdata/backup-my.cnf --prepare --target-dir=/var/mysql_bkdata/
參數解釋:
參數
含義
--defaults-file
通過傳入配置文件設置MySQL默認選項。
RDS MySQL備份文件中,提供名為
backup-my.cnf
的配置文件,該文件位于備份解壓目錄,即/var/mysql_bkdata/
。--prepare
XtraBackup工具的準備命令。
--target-dir
備份解壓目錄
/var/mysql_bkdata/
。修改自建數據庫的數據目錄(datadir)。
恢復數據。
sudo xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/var/mysql_bkdata/
參數解釋:
參數
含義
--defaults-file
自建數據庫的
my.cnf
文件,根據此配置文件中設置的數據目錄(datadir),獲取恢復數據的目標路徑。--copy-back
XtraBackup工具的恢復命令。
--target-dir
備份解壓目錄
/var/mysql_bkdata/
,XtraBackup工具將此目錄數據恢復到自建數據庫的數據目錄中。
MySQL 5.7恢復
恢復前準備。
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/
參數解釋:
參數
含義
--defaults-file
通過傳入配置文件設置MySQL默認選項。
RDS MySQL備份文件中,提供名為
backup-my.cnf
的配置文件,該文件位于備份解壓目錄,即/var/mysql_bkdata/
。--apply-log
XtraBackup工具的準備命令。
該命令后配置存放備份文件的目錄,即備份解壓目錄
/var/mysql_bkdata/
。修改自建數據庫配置文件
my.cnf
。編輯數據庫配置文件。
sudo vim /etc/my.cnf
查詢數據庫配置文件路徑,請參見準備工作。
按
i
鍵進入編輯模式,修改datadir的參數取值為/var/mysql_newdata
。datadir = /var/mysql_newdata
mysql_newdata
為自建數據庫的新數據目錄,已在準備工作中創建。在
my.cnf
中添加如下內容。innodb_undo_tablespaces=2 innodb_undo_directory=/var/mysql_newdata
重要參數innodb_undo_tablespaces的取值需要與
/var/mysql_bkdata/backup-my.cnf
中的取值相同,您可以使用cat /var/mysql_bkdata/backup-my.cnf | grep innodb_undo_tablespaces
查詢。按
Esc
鍵退出編輯模式,輸入:wq!
保存并退出。
恢復數據。
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/
參數解釋:
參數
含義
--defaults-file
自建數據庫的
my.cnf
文件,根據此配置文件中設置的數據目錄(datadir),獲取恢復數據的目標路徑。--copy-back
XtraBackup工具的恢復命令。
該命令后配置存放備份文件的目錄,即備份解壓目錄
/var/mysql_bkdata/
,XtraBackup工具將此目錄數據恢復到自建數據庫的數據目錄中。
MySQL 5.6恢復
恢復前準備。
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/
參數解釋:
參數
含義
--defaults-file
通過傳入配置文件設置MySQL默認選項。
RDS MySQL備份文件中,提供名為
backup-my.cnf
的配置文件,該文件位于備份解壓目錄,即/var/mysql_bkdata/
。--apply-log
XtraBackup工具的準備命令。
該命令后配置存放備份文件的目錄,即備份解壓目錄
/var/mysql_bkdata/
。修改自建數據庫的數據目錄(datadir)。
恢復數據。
sudo innobackupex --defaults-file=/usr/my.cnf --copy-back /var/mysql_bkdata/
參數解釋:
參數
含義
--defaults-file
自建數據庫的
my.cnf
文件,根據此配置文件中設置的數據目錄(datadir),獲取恢復數據的目標路徑。--copy-back
XtraBackup工具的恢復命令。
該命令后配置存放備份文件的目錄,即備份解壓目錄
/var/mysql_bkdata/
,XtraBackup工具將此目錄數據恢復到自建數據庫的數據目錄中。
MySQL 5.5恢復
恢復前準備。
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/
參數解釋:
參數
含義
--defaults-file
通過傳入配置文件設置MySQL默認選項。
RDS MySQL備份文件中,提供名為
backup-my.cnf
的配置文件,該文件位于備份解壓目錄,即/var/mysql_bkdata/
。--apply-log
XtraBackup工具的準備命令。
該命令后配置存放備份文件的目錄,即備份解壓目錄
/var/mysql_bkdata/
。修改自建數據庫配置文件
my.cnf
。編輯數據庫配置文件。
sudo vim /etc/my.cnf
查詢數據庫配置文件路徑,請參見準備工作。
按
i
鍵進入編輯模式,添加datadir參數。datadir = /var/mysql_newdata
mysql_newdata
為自建數據庫的新數據目錄,已在準備工作中創建。在
my.cnf
中添加如下內容。innodb_log_file_size=1048576000
重要參數innodb_log_file_size的取值需要與
/var/mysql_bkdata/backup-my.cnf
中的取值相同,您可以使用cat /var/mysql_bkdata/backup-my.cnf | grep innodb_log_file_size
查詢。按
Esc
鍵退出編輯模式,輸入:wq!
保存并退出。
恢復數據。
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/
參數解釋:
參數
含義
--defaults-file
自建數據庫的
my.cnf
文件,根據此配置文件中設置的數據目錄(datadir),獲取恢復數據的目標路徑。--copy-back
XtraBackup工具的恢復命令。
該命令后配置存放備份文件的目錄,即備份解壓目錄
/var/mysql_bkdata/
,XtraBackup工具將此目錄數據恢復到自建數據庫的數據目錄中。
常見恢復問題
Q:系統返回報錯
xtrabackup: Unknown error 3613
,如何處理?A:請將Percona XtraBackup更新到最新版本后再次嘗試。
Q:系統返回報錯
Original data directory /var/mysql_newdata is not empty!
,如何處理?A:使用
sudo rm -rf /var/mysql_newdata/*
命令清空文件夾內文件,然后在重新執行恢復操作。Q:系統返回報錯
InnodDB: Encryption information in datafile: ./xxx.ibd can't be decrypted, please check if a keyring plugin is loaded and initialized successfully.
,如何處理?請檢查實例是否開啟了TDE加密:
如果開啟了TDE加密,請確認是否存在加密過的表,請參見本文前提條件,先對已加密的表執行設置透明數據加密TDE,然后重新根據本文操作指引進行恢復。
如果未開啟TDE加密,請確保您的Percona XtraBackup版本正確,請參見準備工作安裝。
Q:已下載的備份文件發現存在TDE加密的數據,導致恢復數據出錯,有什么解決辦法?
A:該情況下無法基于已下載的加密的備份文件進行恢復。RDS實例中如果存在加密過的表,會導致恢復過程出錯。請參見本文前提條件,先對已加密的表執行設置透明數據加密TDE,然后重新根據本文操作指引進行恢復。
Q:恢復時報錯
innobackupex: File 'undo001' not found (Errcode: 2 - No Such file or directory)
如何處理?A:undo文件為系統文件,不同版本數據庫間存在差異,請檢查本地自建數據庫的版本是否與RDS MySQL數據庫版本一致。
4. 啟動數據庫
MySQL 8.0、5.7啟動
(可選)在RDS MySQL管理控制臺中查看實例參數lower_case_table_names的取值,如果取值為
1
,則需要修改自建數據庫配置文件my.cnf
。編輯數據庫配置文件。
sudo vim /etc/my.cnf
查詢數據庫配置文件路徑,請參見準備工作。
按
i
進入編輯模式,添加如下內容。lower_case_table_names=1
按
Esc
鍵退出編輯模式,輸入:wq!
保存并退出。
為數據目錄授權。
sudo chown -R mysql:mysql /var/mysql_newdata
執行如下命令,啟動MySQL進程。
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &
參數解釋:
參數
含義
--defaults-file
自建數據庫的配置文件路徑。本文以
/etc/my.cnf
為例,您可以參考準備工作,確認數據庫的配置文件路徑。--user
啟動數據庫的用戶。固定為mysql,無需修改。
--datadir
啟動數據庫使用的數據目錄。本文以
/var/mysql_newdata
為例,您可以參考準備工作,確認數據庫的數據目錄。
MySQL 5.6啟動
(可選)在RDS MySQL管理控制臺中查看實例參數lower_case_table_names的取值,如果取值為
1
,則需要修改自建數據庫配置文件my.cnf
。編輯數據庫配置文件。
sudo vim /usr/my.cnf
查詢數據庫配置文件路徑,請參見準備工作。
按
i
進入編輯模式,添加如下內容。lower_case_table_names=1
按
Esc
鍵退出編輯模式,輸入:wq!
保存并退出。
為數據目錄授權。
sudo chown -R mysql:mysql /var/mysql_newdata
執行如下命令,啟動MySQL進程。
sudo mysqld --defaults-file=/usr/my.cnf --user=mysql --datadir=/var/mysql_newdata &
參數
含義
--defaults-file
自建數據庫的配置文件路徑。本文以
/usr/my.cnf
為例,您可以參考準備工作,確認數據庫的配置文件路徑。--user
啟動數據庫的用戶。固定為mysql,無需修改。
--datadir
啟動數據庫使用的數據目錄。本文以
/var/mysql_newdata
為例,您可以參考準備工作,確認數據庫的數據目錄。
MySQL 5.5啟動
為數據目錄授權。
sudo chown -R mysql:mysql /var/mysql_newdata
執行如下命令,啟動MySQL進程。
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &
參數
含義
--defaults-file
自建數據庫的配置文件路徑。本文以
/etc/my.cnf
為例,您可以參考準備工作,確認數據庫的配置文件路徑。--user
啟動數據庫的用戶。固定為mysql,無需修改。
--datadir
啟動數據庫使用的數據目錄。本文以
/var/mysql_newdata
為例,您可以參考準備工作,確認數據庫的數據目錄。
常見啟動問題
Q:Ubuntu操作系統報錯
mysqld: [ERROR] Failed to open required defaults file: /etc/my.cnf
,是為什么,怎么處理?A:該報錯是由Ubuntu自帶安全程序AppArmor導致的,請使用
apt install -y apparmor-utils
和aa-complain /usr/sbin/mysqld
命令修改AppArmor設置。Q:恢復完成后,無法啟動自建庫或在使用自建庫的過程中遇到
error 1105 Unknown error
錯誤怎么辦?A:執行如下SQL語句轉換數據庫存儲引擎即可:
USE mysql; ALTER TABLE proc engine=myisam; ALTER TABLE event engine=myisam; ALTER TABLE func engine=myisam;
說明如果執行上述語句報錯
ERROR 1067 (42000): Invalid default value for 'modified'
,請先執行SET SQL_MODE='ALLOW_INVALID_DATES';
語句。Q:數據庫恢復后,root密碼是多少?
A:根據版本不同,root密碼獲取方法如下:
如果您的實例版本為MySQL 5.7或8.0,則root密碼即自建庫的root密碼。
如果您的實例版本為MySQL 5.5或5.6,需要重置root密碼方可正常使用。更多信息,請參見官方文檔。
Q:啟動時報錯
InnodDB: Assertion failure in thread 140xxx in file page0zip.icne xxx
,如何處理?A:造成該報錯的原因可能是系統磁盤空間不足,您可以嘗試擴容自建數據庫所在服務器的磁盤后,再進行嘗試。
Q:啟動時報錯
[ERROR] Failed to open the relay log xxx
、[ERROR] Slave: Failed to initialize the master info xxx
、[ERROR] Failed to create or recover replication info repositories.
,如何處理?A:該報錯是由于RDS實例為高可用,而本地自建數據庫不涉及主備節點而導致的,不影響數據庫啟動,無需關注。
5. 連接數據庫并驗證
執行如下命令,登錄MySQL數據庫以驗證進程啟動成功。
mysql -u<源RDS MySQL實例賬號> -p<對應密碼>
說明該登錄命令僅為了驗證恢復成功。若僅需查看某些表數據,則登錄賬號及密碼無需為高權限,僅確認有查詢對應表的權限即可。
您也可以通過外部第三方工具或客戶端、命令行連接數據庫。
執行如下命令,查看是否有RDS MySQL實例中的數據庫。
SHOW DATABASES;
常見連接及驗證問題
Q:為什么阿里云物理備份還原到自建MySQL上以后,數據的時間字段和本地時間不一致?怎樣才能保持時間一致?
A:如果自建庫的時區與RDS實例的時區不一致,則需要修改自建庫的time_zone參數,使其與RDS實例的time_zone參數一致。如果RDS實例的time_zone參數值為system,則需查看RDS實例所在的地域,并將自建庫的time_zone設置為該地域的時區。
Q:連接自建數據庫時報錯
Access denied for user 'XXX'
,如何處理?A:請檢查RDS MySQL實例賬號或密碼是否正確,使用的賬號和密碼為RDS中創建的賬號和密碼。
Q:連接自建數據庫時,忘記密碼了怎么辦?
A:若忘記賬號或密碼,請在執行啟動MySQL進程命令時,傳入
--skip-grant-tables
參數,進程啟動后會忽略權限檢查,從而此步驟無需賬戶密碼就可登錄數據庫。您可在登錄成功后重新再修改賬號和密碼。Q:連接自建數據庫后,只看到系統庫或部分數據庫怎么處理?
A:請重啟數據庫后,使用root賬號或原RDS實例中的高權限賬號連接數據庫查看。
相關文檔
其他常見問題
暫不支持此操作。本文僅適用將RDS MySQL物理備份文件恢復到本地自建數據庫,已經下載的物理備份文件不支持直接恢復到新建RDS MySQL實例。您可以:
方案一:先參考本文將RDS MySQL物理備份文件恢復至自建數據庫,隨后參考自建數據庫備份恢復上云,恢復到新建RDS MySQL實例。
方案二:使用DTS實現RDS MySQL實例間的數據遷移。
您還可以通過DTS將RDS MySQL遷移至自建MySQL中。
基礎系列實例僅支持快照備份,您可以使用以下方法:
用DTS將數據從RDS導出到本地
暫不支持此操作,您可以先分別恢復多個RDS MySQL的物理備份的多個自建數據庫中,然后使用DTS或mysqldump進行數據遷移。更多信息,請參見DTS數據遷移或使用mysqldump遷移MySQL數據。