遭遇:由于公司的数据库要进行一次数据清理,先把阿里云的RDS实例的备份zip包下载到了本地一份,一段时间后相安无事,突然前天让我查一下之前的旧数据……
看了官网的恢复介绍:https://www.alibabacloud.com/help/zh/doc-detail/26212.htm
我选择的方案是使用测试LINUX服务器,然后把之前珍藏的备份文件放到上面解压,上面之前也搭建了一个mysql数据库;
准备工作:
1.下载安装percona-xtrabackup
下载包依赖
#下载包依赖
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
安装
yum install percona-xtrabackup-22
2.解压备份文件、复原数据
- 给sh脚本提交权限、使用脚本解压备份文件到指定的文件夹
chmod +x rds_backup_extract.sh
bash rds_backup_extract.sh -f <数据备份文件名>.tar.gz -C /opt/backup<可以是你自己创建的文件夹>
- 复原数据
innobackupex --defaults-file=/opt/backup/backup-my.cnf --apply-log /opt/backup
完成后提示: completed OK!
3.修改配置
修改文件归属
chown -R mysql:mysql /opt/backup/
这里修改我和官网的不太样,按照官网的一直没有后面mysql一起没有启动需要备份的数据库,一直加载的是之前的数据库
解压完成后的目录
进入到解压完成后的目录,修改backup-my.cnf
我的 backup-my.cnf修改
backup-my.cnf
4.启动mysql 拿到数据
这里执行要定制数据文件、配置文件
mysqld_safe --defaults-file=/opt/backup/mysql/backup-my.cnf --user=mysql --datadir=/opt/backup/mysql/ &
- 恢复过的数据库使用root登录,没有密码
mysql -uroot
- 设置密码,外网访问
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;
网友评论