溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

恢復云數(shù)據(jù)庫MySQL的備份文件到自建數(shù)據(jù)庫

發(fā)布時間:2020-04-08 19:36:37 來源:網(wǎng)絡 閱讀:1042 作者:PeterWang2018 欄目:MySQL數(shù)據(jù)庫

前提條件:

本地MySQL數(shù)據(jù)庫安裝在64位的Linux系統(tǒng)中,且與云數(shù)據(jù)庫MySQL版的版本相同。

操作系統(tǒng)中已安裝數(shù)據(jù)恢復工具Percona XtraBackup 2.2.9或以上版本

請從Percona XtraBackup官網(wǎng)下載:https://www.percona.com/downloads/XtraBackup/LATEST/

percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm 是rpm包安裝快速

# yum localinstall percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

操作系統(tǒng)中已安裝數(shù)據(jù)備份文件解壓工具rds_backup_extract.sh

下載地址:http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh?spm=a2c4g.11186623.2.6.Ng5QVG&file=rds_backup_extract.sh


操作步驟:

在阿里云RDS管理控制臺,在數(shù)據(jù)備份列表中,找到要下載的數(shù)據(jù)備份,并單擊其對應的下載。

具體操作步驟如下:

執(zhí)行如下命令,下載數(shù)據(jù)備份文件

wget -c '<數(shù)據(jù)備份文件外網(wǎng)下載地址>' -O <自定義文件名>.tar.gz

-c:啟用斷點續(xù)傳模式。

-O:將下載的結果保存為指定的文件(建議使用URL中包含的文件名)。

將下載的數(shù)據(jù)備份恢復到本地MySQL數(shù)據(jù)庫中,具體操作步驟如下:

執(zhí)行如下命令,解壓已下載的數(shù)據(jù)備份文件。


說明:本文以自定義路徑/home/mysql/data為例,您可以根據(jù)實際情況將其替換成實際路徑。


1.bash rds_backup_extract.sh -f <數(shù)據(jù)備份文件名>.tar.gz -C /home/mysql/data

-f:指定要解壓的備份集文件。

C:指定文件要解壓到的目錄??蛇x參數(shù),若不指定就解壓到當前目錄


# bash rds_backup_extract.sh -f hins2642811_data_20180227013214.tar.gz -C data 

2.執(zhí)行如下命令,查詢解壓后生成的文件。

# ls -l data/


3.執(zhí)行如下命令,恢復解壓好的備份文件。

innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data

# innobackupex --defaults-file=data/backup-my.cnf --apply-log data


4.為避免版本問題,需修改backup-my.cnf參數(shù),具體操作步驟如下。

執(zhí)行如下命令,以文本方式編輯backup-my.cnf文件。

# vi /home/mysql/data/backup-my.cnf

執(zhí)行如下命令,注釋掉如下參數(shù)。

#innodb_fast_checksum

#innodb_page_size

#innodb_log_block_size

如果報錯這兩個也注釋

# innodb_checksum_algorithm=innodb

# innodb_log_checksum_algorithm=innodb

# innodb_undo_directory=.

# innodb_undo_tablespaces=0

# rds_encrypt_data=false

# innodb_encrypt_algorithm=aes_128_ecb

按Esc鍵,然后輸入:wq進行保存并關閉編輯器。

=============================================================

安裝mysql-server

下載地址:https://dev.mysql.com/downloads/mysql/

mysql 5.6 下載地址:

https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-server-5.6.39-1.el6.x86_64.rpm

mysql 5.7 下載地址:

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.21-1.el6.x86_64.rpm

這個版本是: Server version: 5.1.73

# yum -y install mysql-server mysql-develop mysql 


升級mysql版本:

    # yum -y remove mysql-server mysql-develop mysql

# yum localinstall MySQL-server-5.6.39-1.el6.x86_64.rpm

報錯:file /usr/share/mysql/charsets/dec8.xml from install of MySQL-server-5.6.39-1.el6.x86_64 

  conflicts with file from package mysql-libs-5.1.73-8.el6_8.x86_64

看到“conflicts”,是產(chǎn)生沖突了,文件“/usr/share/mysql/charsets/*”

需要MySQL-server-5.6.19-1.linux_glibc2.5.x86_64版本的,而系統(tǒng)已經(jīng)存在mysql-libs-5.1.73-8.el6_8.x86_64版本的!

解決辦法:

執(zhí)行以下命令,刪除mysql-libs-5.1.73-8.el6_8.x86_64:

# yum -y remove mysql-libs-5.1.73*


再執(zhí)行以下命令安裝MySQL:

# yum localinstall MySQL-server-5.6.39-1.el6.x86_64.rpm

安裝成功了。

安裝mysql客戶端:

下載地址:https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-client-5.6.39-1.el6.x86_64.rpm

# yum -y localinstall MySQL-client-5.6.39-1.el6.x86_64.rpm

=============================================================

5.執(zhí)行如下命令,修改文件屬主,并確定文件所屬為MySQL用戶。

chown -R mysql:mysql /home/mysql/data

# chown -R mysql:mysql data

6.執(zhí)行如下命令,啟動MySQL進程。

mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &

# mysqld_safe --defaults-file=/opt/data/backup-my.cnf --user=mysql --datadir=/opt/data &


    7.執(zhí)行如下命令,登錄MySQL數(shù)據(jù)庫以驗證進程啟動成功。

mysql -uroot

8.恢復完成后,表mysql.user中不包含在RDS實例中創(chuàng)建的用戶,需要新建。在新建用戶前,執(zhí)行如下命令

delete from mysql.db where user<>’root’ and char_length(user)>0;

delete from mysql.tables_priv where user<>’root’ and char_length(user)>0;

flush privileges;

9.創(chuàng)建用戶:

報錯:mysql> grant all on *.* to xiaoyeyun@"%" identified by "xiaoyeyun";

  ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 

  42. Created with MySQL 50518, now running 50639.

  Please use mysql_upgrade to fix this error.


按照問題描述執(zhí)行修復:

mysql_upgrade mysql -h 192.168.1.2 -u xxx -p

# mysql_upgrade mysql

創(chuàng)建用戶成功。

mysql> grant all on *.* to xiaoyeyun@"%" identified by "xiaoyeyun";

Query OK, 0 rows affected (0.00 sec)


mysql> select  user,host from mysql.user;

+-----------+-----------+

| user      | host      |

+-----------+-----------+

| xiaoyeyun | %         |

| root      | 127.0.0.1 |

| root      | ::1       |

| root      | localhost |

+-----------+-----------+

4 rows in set (0.00 sec)


mysql> 




向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI