恢复云数据库MySQL的备份文件到自建数据库
admin
2023-05-03 21:41:56
0

前提条件:

本地MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同。

操作系统中已安装数据恢复工具Percona XtraBackup 2.2.9或以上版本

请从Percona XtraBackup官网下载: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

操作系统中已安装数据备份文件解压工具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管理控制台,在数据备份列表中,找到要下载的数据备份,并单击其对应的下载。

具体操作步骤如下:

执行如下命令,下载数据备份文件

wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>.tar.gz

-c:启用断点续传模式。

-O:将下载的结果保存为指定的文件(建议使用URL中包含的文件名)。

将下载的数据备份恢复到本地MySQL数据库中,具体操作步骤如下:

执行如下命令,解压已下载的数据备份文件。


说明:本文以自定义路径/home/mysql/data为例,您可以根据实际情况将其替换成实际路径。


1.bash rds_backup_extract.sh -f <数据备份文件名>.tar.gz -C /home/mysql/data

-f:指定要解压的备份集文件。

C:指定文件要解压到的目录。可选参数,若不指定就解压到当前目录


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

2.执行如下命令,查询解压后生成的文件。

# ls -l data/


3.执行如下命令,恢复解压好的备份文件。

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参数,具体操作步骤如下。

执行如下命令,以文本方式编辑backup-my.cnf文件。

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

执行如下命令,注释掉如下参数。

#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”,是产生冲突了,文件“/usr/share/mysql/charsets/*”

需要MySQL-server-5.6.19-1.linux_glibc2.5.x86_64版本的,而系统已经存在mysql-libs-5.1.73-8.el6_8.x86_64版本的!

解决办法:

执行以下命令,删除mysql-libs-5.1.73-8.el6_8.x86_64:

# yum -y remove mysql-libs-5.1.73*


再执行以下命令安装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.执行如下命令,修改文件属主,并确定文件所属为MySQL用户。

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

# chown -R mysql:mysql data

6.执行如下命令,启动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.执行如下命令,登录MySQL数据库以验证进程启动成功。

mysql -uroot

8.恢复完成后,表mysql.user中不包含在RDS实例中创建的用户,需要新建。在新建用户前,执行如下命令

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.创建用户:

报错: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.


按照问题描述执行修复:

mysql_upgrade mysql -h 192.168.1.2 -u xxx -p

# mysql_upgrade mysql

创建用户成功。

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> 




相关内容

热门资讯

豪华邮轮病毒,横跨三大洲始末 5月11日,泛海探险公司确认,隶属于该公司的“洪迪厄斯”号邮轮抵达西班牙特内里费岛后,全部87名乘客...
苏泊尔球釜电饭煲不通电是什么原... 1、有可能是温度保险管出现了问题,每个电饭煲都有温度保险管,而不是家常用的保险丝,如果保险管出现了问...
九阳铁釜电饭煲不通电原因 1、可能是面板烧了。2、控制电路没有工作,先检查控制电源是否正常。电饭煲的面板显示器线路接触不良,找...
空调线控器出现“黑... 珠海总部对于退回的多联机线控器黑屏“故障”,部分是由于不清楚线控器的灯光功能,误触发线控器关闭了灯光...
长虹柜机温度传感器是多少K 每一个空调传感器的传感温度都会对应着不同的空调工作型号和参数,常见的有5K,10K和15K,当然在不...
测电笔测不出的漏电 1、如果漏电的电压比较低的话有时候测电笔就测试不出来的。2、有时候测电笔在出厂的时候没有检测好,就有...
“拖延毫无出路”:美智库疾呼出... 【文/观察者网 潘昱辰 编辑/高莘】“如果没有国家战略扶持,美国汽车产量将持续下滑,直接影响美国国家...
凤凰记者拍到空军一号飞抵首都机... “哪儿呢?”“来了,这!这!这!”5月13日晚,特朗普专机空军一号抵达北京首都机场 ,凤凰卫视记者拍...
黄仁勋最后时刻登上“空军一号”... 美国当地时间5月12日,美国总统特朗普启程访华。途中,“空军一号”于阿拉斯加加油停靠时,英伟达公司总...
美财长贝森特专机先期抵达北京 13日下午,在特朗普抵达前,美国财长贝森特的专机先期飞抵北京,凤凰卫视记者拍摄到了专机降落前的画面。