日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

RDS MySQL物理備份文件恢復到自建數據庫

本文介紹如何使用Percona XtraBackup工具,將RDS MySQL的物理備份文件恢復到自建數據庫。

背景

RDS MySQL支持將實例備份文件恢復到自建數據庫,當前支持物理備份文件恢復、邏輯備份文件恢復等多種方式。如何選擇數據恢復方案,請參見數據恢復方案概覽

您可以前往RDS管理控制臺,在左側導航欄選擇備份恢復,然后在基礎備份列表 > 數據備份中查看實例備份的類型。

image

說明

如果沒有物理備份,可以手動創建備份后,再進行本文操作。創建方法,請參見手動備份

應用場景

  • 如果您未來一段時間不再使用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物理備份恢復到此數據庫后,原有業務將不可用。

  • 本文介紹的恢復方案中,是將數據恢復到一個新建的數據庫數據目錄中,對自建數據庫中原數據無影響。

技術實現

本文介紹的物理備份恢復方式主要是通過如下流程實現的:

  1. 在RDS MySQL的管理控制臺中,對數據庫進行全量物理備份。

  2. 將物理備份文件下載到本地,然后通過qpress工具進行解壓。

  3. 使用Percona XtraBackup工具,將解壓后的備份文件恢復到自建數據庫的數據目錄中。

  4. 重啟數據庫后,即可在自建數據庫中查看到原先位于RDS MySQL中的數據。

注意事項

  • 備份下載地址鏈接獲取后有效時間僅有一個小時。超過有效時間后您可刷新頁面獲取最新鏈接下載即可。

  • 請勿修改或刪減備份文件中的內容,修改或刪減操作可能會導致備份文件損壞且無法恢復,如需修改,請恢復到自建數據庫后,再進行修改操作。

費用說明

  • 如果需要手動備份,請關注當前備份使用量,超出免費額度的備份空間將會產生備份費用。更多信息,請參見備份費用

  • 下載備份時,如果您的自建數據庫部署在本地,則需要使用外網鏈接下載備份數據,超出外網下載免費額度后需要支付外網流量費用。更多信息,請參見費用說明

    說明

    如果您的自建數據庫部署在與RDS相同地域、相同VPC的云服務器 ECS中,使用內網鏈接下載備份數據,不收取流量費用。

準備工作

環境準備

  1. 本文以CentOS 7.9 64位的Linux系統為例,其他Linux發行版本,請適配相關命令。

  2. 部署自建MySQL數據庫,其中數據庫大版本與RDS MySQL的大版本必須相同(例如都是8.0)。

    您可以使用如下命令查詢自建數據庫大版本。

    mysql --version
  3. 查詢您的自建數據庫的配置文件路徑

    本文示例中涉及的數據庫配置文件路徑如下:

    • 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
    說明

    如果您的查詢結果不一致,請在執行后續命令時,根據實際情況修改。

  4. 創建備份解壓路徑mysql_bkdata),用于存放解壓后的備份文件。

    您可以使用如下命令創建備份解壓目錄

    sudo mkdir /var/mysql_bkdata
    sudo chown -R $USER:$USER /var/mysql_bkdata
    說明

    上述命令的$USER:$USER表示從環境變量中獲取當前用戶及用戶組,無需修改。

  5. 創建數據庫數據目錄mysql_newdata),用于將備份文件恢復到此目錄,啟動數據庫時使用此目錄的數據。

    您可以使用如下命令創建數據目錄

    sudo mkdir /var/mysql_newdata
    sudo chown -R $USER:$USER /var/mysql_newdata
    說明

    上述命令的$USER:$USER表示從環境變量中獲取當前用戶及用戶組,無需修改。

工具準備

  1. 安裝備份恢復工具Percona XtraBackup。

    • 如果是MySQL 8.0實例,請根據實際主機環境下載對應版本的XtraBackup工具,下載后再安裝。

      重要

      由于RDS MySQL 8.0有新增Redo類型,開源版本的Percona XtraBackup可能存在兼容性問題。因此請下載下表RDS提供的XtraBackup工具。

      主機環境

      XtraBackup 8.0工具下載入口

      安裝命令示例

      說明

      本示例將工具下載至/Xtrabackup8.0目錄下,實際安裝命令會因目錄不同而有所變化,請以實際工具下載位置為準調整安裝命令。

      Linux 6(基于x86_64架構)

      RDS XtraBackup 8.0工具下載

      sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios6.x86_64

      Linux 7(基于x86_64架構)

      RDS XtraBackup 8.0工具下載

      sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.x86_64.rpm

      Linux 7(基于ARM AArch64架構)

      RDS XtraBackup 8.0工具下載

      sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.aarch64.rpm

      Linux 8(基于ARM AArch64架構)

      RDS XtraBackup 8.0工具下載

      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
  2. 安裝解壓工具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. 下載備份文件

  1. 訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。

  2. 在左側導航欄單擊備份恢復

  3. 基礎備份列表 > 數據備份中,找到目標物理備份,單擊操作列的實例備份下載

  4. 實例備份下載對話框,單擊復制內網地址復制外網地址后image

    重要
    • 使用內網地址下載時,需要在同地域的VPC網絡中才可下載,在跨地域VPC以及經典網絡的服務器端無法下載。

    • 通過外網鏈接下載備份數據時,超出外網下載免費額度后需要支付外網流量費用。更多信息,請參見費用說明

    • 備份下載地址鏈接獲取后有效時間僅有一個小時。超過有效時間后您可刷新頁面獲取最新鏈接下載即可。

    • 請勿修改或刪減已備份的文件內容,可能造成備份文件損壞,無法恢復,如需修改,請恢復到自建數據庫后,再進行修改操作。

  5. 登錄本地自建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 XtraBackupqpress后,再執行以下解壓命令。若不安裝,后續執行如下命令將失敗。

xbstream文件包(_xb.qp后綴)

執行以下解壓命令時,請將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/

xbstream文件包(_qp.xb后綴)

執行以下解壓命令時,請將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/

tar壓縮包(.tar.gz后綴)

執行以下解壓命令時,請將test.tar.gz替換為您另存為的備份文件名,/var/mysql_bkdata/替換為您創建的備份解壓路徑。

tar -izxvf test.tar.gz -C /var/mysql_bkdata/

xbstream壓縮包(.xb.gz后綴)

執行以下解壓命令時,請將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恢復

  1. 恢復前準備。

    /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/

  2. 修改自建數據庫的數據目錄(datadir)。

    1. 編輯數據庫配置文件。

      sudo vim /etc/my.cnf

      查詢數據庫配置文件路徑,請參見準備工作

    2. i鍵進入編輯模式,修改datadir的參數取值為/var/mysql_newdata

      datadir = /var/mysql_newdata

      mysql_newdata為自建數據庫的新數據目錄,已在準備工作中創建。

    3. Esc鍵退出編輯模式,輸入:wq!保存并退出。

  3. 恢復數據。

    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恢復

  1. 恢復前準備。

    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/

  2. 修改自建數據庫配置文件my.cnf

    1. 編輯數據庫配置文件。

      sudo vim /etc/my.cnf

      查詢數據庫配置文件路徑,請參見準備工作

    2. i鍵進入編輯模式,修改datadir的參數取值為/var/mysql_newdata

      datadir = /var/mysql_newdata

      mysql_newdata為自建數據庫的新數據目錄,已在準備工作中創建。

    3. 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查詢。

    4. Esc鍵退出編輯模式,輸入:wq!保存并退出。

  3. 恢復數據。

    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恢復

  1. 恢復前準備。

    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/

  2. 修改自建數據庫的數據目錄(datadir)。

    1. 編輯數據庫配置文件。

      sudo vim /usr/my.cnf

      查詢數據庫配置文件路徑,請參見準備工作

    2. i鍵進入編輯模式,添加datadir參數。

      datadir = /var/mysql_newdata

      mysql_newdata為自建數據庫的新數據目錄,已在準備工作中創建。

    3. Esc鍵退出編輯模式,輸入:wq!保存并退出。

  3. 恢復數據。

    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恢復

  1. 恢復前準備。

    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/

  2. 修改自建數據庫配置文件my.cnf

    1. 編輯數據庫配置文件。

      sudo vim /etc/my.cnf

      查詢數據庫配置文件路徑,請參見準備工作

    2. i鍵進入編輯模式,添加datadir參數。

      datadir = /var/mysql_newdata

      mysql_newdata為自建數據庫的新數據目錄,已在準備工作中創建。

    3. 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查詢。

    4. Esc鍵退出編輯模式,輸入:wq!保存并退出。

  3. 恢復數據。

    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啟動

  1. (可選)在RDS MySQL管理控制臺中查看實例參數lower_case_table_names的取值,如果取值為1,則需要修改自建數據庫配置文件my.cnf

    1. 編輯數據庫配置文件。

      sudo vim /etc/my.cnf

      查詢數據庫配置文件路徑,請參見準備工作

    2. i進入編輯模式,添加如下內容。

      lower_case_table_names=1
    3. Esc鍵退出編輯模式,輸入:wq!保存并退出。

  2. 數據目錄授權。

    sudo chown -R mysql:mysql /var/mysql_newdata
  3. 執行如下命令,啟動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啟動

  1. (可選)在RDS MySQL管理控制臺中查看實例參數lower_case_table_names的取值,如果取值為1,則需要修改自建數據庫配置文件my.cnf

    1. 編輯數據庫配置文件。

      sudo vim /usr/my.cnf

      查詢數據庫配置文件路徑,請參見準備工作

    2. i進入編輯模式,添加如下內容。

      lower_case_table_names=1
    3. Esc鍵退出編輯模式,輸入:wq!保存并退出。

  2. 數據目錄授權。

    sudo chown -R mysql:mysql /var/mysql_newdata
  3. 執行如下命令,啟動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啟動

  1. 數據目錄授權。

    sudo chown -R mysql:mysql /var/mysql_newdata
  2. 執行如下命令,啟動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-utilsaa-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. 連接數據庫并驗證

  1. 執行如下命令,登錄MySQL數據庫以驗證進程啟動成功。

    mysql -u<源RDS MySQL實例賬號> -p<對應密碼>
    說明
    • 該登錄命令僅為了驗證恢復成功。若僅需查看某些表數據,則登錄賬號及密碼無需為高權限,僅確認有查詢對應表的權限即可。

    • 您也可以通過外部第三方工具或客戶端、命令行連接數據庫。

  2. 執行如下命令,查看是否有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遷移至自建MySQL中。

基礎系列實例的備份怎么恢復或遷移呢?

基礎系列實例僅支持快照備份,您可以使用以下方法:

可以將多個RDS MySQL的物理備份恢復到一個自建數據庫中嗎?

暫不支持此操作,您可以先分別恢復多個RDS MySQL的物理備份的多個自建數據庫中,然后使用DTS或mysqldump進行數據遷移。更多信息,請參見DTS數據遷移使用mysqldump遷移MySQL數據