前提條件:
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作與策劃設(shè)計(jì),塔河網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:塔河等地區(qū)。塔河做網(wǎng)站價(jià)格咨詢:028-86922220
本地MySQL數(shù)據(jù)庫安裝在64位的Linux系統(tǒng)中,且與云數(shù)據(jù)庫MySQL版的版本相同。
操作系統(tǒng)中已安裝數(shù)據(jù)恢復(fù)工具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管理控制臺(tái),在數(shù)據(jù)備份列表中,找到要下載的數(shù)據(jù)備份,并單擊其對(duì)應(yīng)的下載。
具體操作步驟如下:
執(zhí)行如下命令,下載數(shù)據(jù)備份文件
wget -c '<數(shù)據(jù)備份文件外網(wǎng)下載地址>' -O <自定義文件名>.tar.gz
-c:啟用斷點(diǎn)續(xù)傳模式。
-O:將下載的結(jié)果保存為指定的文件(建議使用URL中包含的文件名)。
將下載的數(shù)據(jù)備份恢復(fù)到本地MySQL數(shù)據(jù)庫中,具體操作步驟如下:
執(zhí)行如下命令,解壓已下載的數(shù)據(jù)備份文件。
說明:本文以自定義路徑/home/mysql/data為例,您可以根據(jù)實(shí)際情況將其替換成實(shí)際路徑。
1.bash rds_backup_extract.sh -f <數(shù)據(jù)備份文件名>.tar.gz -C /home/mysql/data
-f:指定要解壓的備份集文件。
C:指定文件要解壓到的目錄。可選參數(shù),若不指定就解壓到當(dāng)前目錄
# bash rds_backup_extract.sh -f hins2642811_data_20180227013214.tar.gz -C data
2.執(zhí)行如下命令,查詢解壓后生成的文件。
# ls -l data/
3.執(zhí)行如下命令,恢復(fù)解壓好的備份文件。
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
如果報(bào)錯(cuò)這兩個(gè)也注釋
# 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進(jìn)行保存并關(guān)閉編輯器。
=============================================================
安裝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
這個(gè)版本是: Server version: 5.1.73
# yum -y install mysql-server mysql-develop mysql
升級(jí)mysql版本:
# yum -y remove mysql-server mysql-develop mysql
# yum localinstall MySQL-server-5.6.39-1.el6.x86_64.rpm
報(bào)錯(cuò):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í)行如下命令,啟動(dòng)MySQL進(jìn)程。
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ù)庫以驗(yàn)證進(jìn)程啟動(dòng)成功。
mysql -uroot
8.恢復(fù)完成后,表mysql.user中不包含在RDS實(shí)例中創(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)建用戶:
報(bào)錯(cuò):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í)行修復(fù):
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>