(文字参见 https://help.aliyun.com/knowledge_detail/41817.html)

前提概要

环境

  • 服务器环境:Ubuntu16.04

  • 终端工具:iTerm (Mac)

  • 数据压缩解压工具:rds_backup_extract (仅仅适用RDS)

  • 数据库恢复工具:Percona XtraBackup 2.2 Release 2.2.12

  • 本地数据库环境:mysql 5.7.22

  • RDS:MySQL5.6.16

目标:将RDS上的数据库备份到本地服务器中

步骤说明:

1.本地服务器安装 Percona XtraBackup

安装说明: 1.从Percona XtraBackup官网下载对于mysql版本的官方包(本人安装的2.4.8版本对于MySQL5.7);

2.为了防止出现安装时出现依赖问题 ,本地安装gdebi; sudo apt-get install gdebi 再安装你要安装的包:*.deb

sudo gdebi *.deb(注意此安装方式为 Ubuntu系统安装方式)

3.查看 percona-xtrabackup  版本   innobackupex -v

2.下载数据备份文件解压工具rds_backup_extract.sh

3. 下载数据备份文件到本地服务器(此步骤如下)

获取数据备份文件下载地址,具体操作步骤如下。

  1. 登录RDS管理控制台。

  2. 选择目标实例所在地域。

  3. 单击目标实例的ID,进入基本信息页面。

  4. 在左侧导航栏中,选择备份恢复,进入备份恢复页面。

  5. 选择数据备份标签页。

  6. 选择查询的时间范围,然后单击查询

  7. 在数据备份列表中,找到要下载的数据备份,并单击其对应的下载,如下图所示。

实例备份文件下载窗口,单击复制外网地址,获取数据备份文件外网下载地址,如下图所示。

下载数据备份文件,具体操作步骤如下。

  1. 登录云服务器ECS。

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

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

    参数说明:

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

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

      说明:若提示显示100%进度,则表示文件下载完成。

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

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

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

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

    参数说明:

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

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

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

     
    1. ls -l /home/mysql/data

    命令执行成功后,系统会返回如下结果,其中蓝色字体为生成备份文件时RDS实例所包含的数据库。

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

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

    若系统返回如下类似结果,则说明备份文件已成功恢复到本地数据库。

5.为避免版本问题,需修改backup-my.cnf参数,具体操作步骤如下。

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

     
    1. vi /home/mysql/data/backup-my.cnf
  2. 执行如下命令,注释掉如下参数。

     
    1. #innodb_fast_checksum
    2. #innodb_page_size
    3. #innodb_log_block_size

(第五个步骤我是落在第四步之前提前执行的)

执行如下命令,修改文件属主,并确定文件所属为MySQL用户。

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

执行如下命令,启动MySQL进程。

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

(本人就卡在这里欲仙欲死,服务器一直会停住执行不了)

这一步实际上就是要把本地mysql存储数据路径改成 home/mysql/data 这个路径

  i.停服务

  ii.更改 mysql 配置文件 datadir 改成  /home/mysql/data

  iii.跳过密码验证 mysqld_safe --skip-grant-tables

  vi.无密码登录 mysql -u root 

(如果RDS 版本低于 本地数据库 ,则执行 mysql_upgrade -u root ,本地数据库版本不能低于RDS 的版本)

v.恢复完成后,表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;

授权

grant all privileges on *.* to 'root'@'localhost' identified by 'root' with grant option;

恢复云数据库MySQL的备份文件到自建数据库总结相关推荐

  1. 恢复云数据库MySQL的备份文件到自建数据库

    恢复云数据库MySQL的备份文件到自建数据库 注:已经在本地阿里云服务器部署 系统:使用的阿里云CentOS release 6.8 (Final) 注:先把默认的mysql清理 然后去官网下载 我使 ...

  2. 阿里云重启mysql_阿里云RDS Mysql 5.6 ECS自建从库(不锁表,不重启)

    注意:你的备份的时间应该在你的binlog保存时间范围内 环境: 主库: 阿里云RDS Mysql 5.6 从库: ECS机器上自建从库 Centos 7.4 setp 1 在阿里云RDS后台建立只读 ...

  3. mysql 怎么同时删除两张表的数据库,mysql怎样删除多个表格数据库数据_数据库

    mysql删除多个表格数据库数据的要领:在两个表之间竖立级联删除关联,完成删除一个表的数据时,同时删除另一个表中相干的数据,语句为[delete t1,t2 from t1,t2 where 前提]. ...

  4. e4a数据库mysql中间件_[e4a同步内陆数据库至mysql]?确立一个中间件毗邻数据库

    首先是准备工作,同时这部门可以温习前面内容: 1.确立一个mysql数据库,写几个字段. 2.确立一个中心件毗邻数据库. 3.编写E4A程序毗邻该数据库. 然后就是几个操作历程: 4.用E4A实现数据 ...

  5. sql mysql 删除数据库_在sql中将已建数据库删除的详细步骤

    上期为大家讲解的建立数据库的方法,这期小编为大家讲解在sql中将已建数据库删除的详细步骤,一起去下文看看吧. 今天主要针对的是在SQL Server中已将建立好数据库之后呢!我们这边对建立完毕的数据库 ...

  6. Android SQLite数据库介绍、Android Studio代码建数据库建表

    目录 一 SQLite数据库介绍 二 SQLite使用步骤 三 代码和运行结果 一 SQLite数据库介绍 SQLite 是关系型数据库:使用通用的 SQL 语句进行管理 (同oracle mySql ...

  7. 解决某些MySQL数据库的表没了,建数据库也建不了的情况

    今天打开eclipse登录图书管理系统出现505报错的情况,后来发现打开Navicat for MySQL发现数据库的表都没了,也不能创建数据库,最后百度了一下,原来是没启动MySQL,所以得到了解决 ...

  8. 数据库mysql改密码忘了怎么办_数据库mysql改密码忘了怎么办

    mysql有时候忘记密码了怎么办?我给出案例和说明!一下就解决了! Windows下的实际操作如下 1.关闭正在运行的MySQL. 2.打开DOS窗口,转到mysql\bin目录. 3.输入mysql ...

  9. 热血江湖数据库MYSQL修改_热血江湖门派端数据库详细解释(mysql)

    数据库:          表:                列: rxjhaccount┬tbl_account┬fld_id  帐号 │                  ├fld_passwo ...

最新文章

  1. 100G光接口模式转换器
  2. 一文整理深度学习【调参小技巧】
  3. P1459 三值的排序 Sorting a Three-Valued
  4. host ntrip 千寻rtk_最新测量干货:南方银河1和银河1Plus RTK设备连接千寻cors账号的设置方法...
  5. bay trail android 平板,英特尔再推9款平板专用BayTrail-T处理器
  6. CTS(5)---Android8.0中CTS测试对于TEE的要求
  7. 《Python Cookbook》笔记_列表等可迭代对象的解压赋值
  8. MAC可以在.zshrc中修改PATH
  9. JSON stringify and parse
  10. MATLAB的7种滤波方法(重制版)
  11. 老华为交换机S3500配置SSH
  12. PTES_Technical_Guidelines(渗透测试执行标准)
  13. win10系统服务器不能创建对象,win10系统Activex部件不能创建对象的详细技巧
  14. 预约小程序开发:小程序开发的费用都包含了哪些?
  15. 阿里云邮箱25端口被关闭,改用465端口Java发送邮件
  16. [最小割最大流 || 最短路] roadblock Dinic SPFA + SLE
  17. 【秋钓皮皮】 奔跑吧,皮皮!(有图了)
  18. 3.1【微信小程序全栈开发课程】在本地搭建后端开发环境
  19. Android弹幕实现现状与原理浅析
  20. carbondata使用笔记

热门文章

  1. 关于ssm框架的外文文献及译文_学术小白应该如何高效阅读文献?
  2. 引入图标字体的三种方式
  3. 【BackEnd】SpringBoot整合MybatisPlus实现登录注册功能(适合初学者)
  4. 云数据库 RDS for PostgreSQL的优势和应用
  5. hlgoj 1766 Cubing
  6. vivo手机mitmproxy安全证书安装
  7. Python绘制气泡图
  8. 【云原生|中间件】我们为什么要使用DCM?
  9. ImageIO工具类简介及应用
  10. 苹果开发者账号注册第一步,Apple ID 的双重认证,为 Apple ID 设置双重认证