本文由ilanniweb提供友情贊助,首發於爛泥行天下
想要獲得更多的文章,可以關注我的微信ilanniweb
公司目前使用的數據庫是阿裡雲的RDS,目前RDS的版本為mysql5.6。如下:
現在要求把RDS的數據,在公司內部本地進行恢復。
如何把RDS在本地進行恢復呢?這個阿裡雲官網給出了相關的操作教程,連接如下:《RDS備份文件恢復到自建數據庫》。
看了官網的教程,感覺很是麻煩,而且也有幾個比較特殊的地方沒有點出來,下面是我對RDS本地恢復的步驟。
一、安裝mysql數據庫
在進行RDS本地恢復數據之前,我們需要先在本地服務器上安裝mysql的5.6版本,因為RDS是5.6版本,所以我們本地的mysql數據庫要與RDS版本對應。
rpm -ivh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm && yum -y install mysql-server mysql
mysql數據庫安裝完畢後,我們現在來下載RDS備份。
二、下載RDS備份
RDS本身是有備份,而且是可以在RDS的管理後台自定義備份策略,如下:
我們可以在RDS備份列表中下載已經備份好的RDS文件,如下:
通過上圖,我們可以很明顯的看到RDS的備份是全量備份的,而且是物理備份的。
三、解壓RDS備份文件
RDS備份文件下載完畢後,我們需要對其進行解壓。按照阿裡雲官方文檔,我們需要下載阿裡雲專門的腳本進行解壓,而且必須是在linux OS 64bit上使用。
必須說明:RDS的備份文件只能在linux OS上進行的。在windows OS上使用第三方軟件解壓的話,你會發現看不到任何的文件。
下載RDS解壓腳本,使用如下命令:
wget http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh
使用RDS解壓腳本,解壓RDS備份文件,如下:
sh rds_backup_extract.sh -f /root/hins1035007_xtra_20160220031920.tar.gz -C /data
解壓完畢後,我們切換到/data目錄下查看RDS備份解壓的文件,如下:
通過上圖,可以很明顯的看出,RDS是通過percona-Xtrabackup進行全量備份的。
四、修改/data目錄的所有者
RDS解壓完畢後,我們需要修改/data目錄的所有者。如下:
chown mysql:mysql -R /data/
五、修改my.cnf配置文件
現在我們在/data目錄下創建mysql的配置文件my.cnf,如下:
vim /data/my.cnf
[mysqld]
datadir = /data/
port = 3306
server_id = 3
socket = /data/mysqld.sock
max_allowed_packet=32M
log-error = /data/error.log
default-storage-engine=INNODB
六、啟動mysql並操作
my.cnf文件創建完畢後,我們現在來啟動mysql。
注意:RDS備份數據庫中的root用戶是沒有密碼的,而且此時RDS備份數據庫中只有root這一個用戶。
啟動命令如下:
/usr/bin/mysqld_safe --defaults-file=/data/my.cnf &
注意:在此mysql啟動命令,是根據mysql多實例進行的,可以查看《爛泥:mysql5.5多實例部署》。
通過上圖,我們可以很明顯的看出mysql已經正常啟動。現在我們再來測試,是否可以正常連接mysql。如下:
mysql -h127.0.0.1 –uroot -p
通過上圖,我們可以很明顯的看出mysql是可以正常連接的。
現在我們再來創建root用戶密碼,並賦予其連接權限。如下:
use mysql;
update user set password=password('123456') where user='root';
update user set host='%' where user='root' && host='127.0.0.1';
flush privileges;
對mysql操作完畢後,我們現在來測試mysql客戶端。
七、客戶端連接mysql
mysql正常啟動後,我們現在通過客戶端連接數據庫。如下:
通過上圖,我們可以很明顯的看到RDS數據庫已經在本地正常恢復了。
注意:在此有兩點和官方教程不一樣的地方需要說明:
1、沒有安裝percona-Xtrabackup數據恢復軟件進行數據恢復
2、數據庫root用戶是沒有密碼的