阿里云RDS云数据库恢复到本地mysql数据库

阿里云RDS云数据库恢复到本地mysql数据库

前提条件:

本地mysql要与RDS数据库所用得版本一致,且本地mysql要安装在64位得linux系统中。

linux系统中
1. 要安装xtrabackup数据备份恢复工具。版本要求2.2.9以上 (本机使用阿里源 yum安装2.3.6版本)
2. 要安装阿里云提供得解压备份文件工具 rds_backup_extract.sh (记得chmod 加执行权限)点击下载

实例操作:

centos 7.3 安装mysql 5.6

rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*" (查看当前可用的mysql安装资源)
yum -y install mysql-community-server
systemctl start mysqld
#友情提示:默认mysql安装my.cnf路径是/etc/my.cnf,datadir路径是/var/lib/mysql

安装备份工具

yum install percona-xtrabackup

安装阿里云解压工具
下载得工具传至本地服务器

chmod +x rds_backup_extract.sh       #加执行权限

下载备份文件
登录阿里云控制台 下载rds备份文件。
这里写图片描述

我了解 要下载 : 下载到本地   在从本地传到本地得服务器中
复制内网/外网地址  则需要在ECS上下载      #若要讲数据恢复到ecs上,可以下载到ecs上  
 wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>.tar.gz    #在ecs上执行
 #-c:启用断点续传模式  -O:将下载的结果保存为指定的文件(建议使用URL中包含的文件名)。

恢复数据

systemctl stop mysqld   #停止mysql服务
mv /var/lib/mysql/ /var/lib/mysqlbak  #  备份原来的datadir
mkdir /var/lib/mysql    #新建一个datadir(友情提示:你也可以建一个你喜欢的目录,但你后面要去my.cnf改成你的目录)
bash rds_backup_extract.sh -f you_databaes.tar.gz -C /var/lib/mysql  #解压备份:
innobackupex --defaults-file=/etc/my.cnf --apply-log /var/lib/mysql   #执行恢复
chown -R  mysql:mysql  /var/lib/mysql    #修改文件属性

启动mysql systemctl start mysqld
登录 mysql -uroot
#恢复完成后,表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;

创建用户 mysqladmin -uroot password可能会报错
ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 39
因为升级不当导致,执行以下命令即可正常执行命令

mysql_upgrade -uroot 

然后继续添加用户 配置远程运行远程登录。

mysqladmin -uroot password  #添加root用户 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;  #配置root允许远程登录
flush privileges;   #刷新策略 生效

成功
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_40025218/article/details/81504858