RDS-Mysql 物理备份恢复到本地数据库上

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 本篇文章作为对阿里云官方文档的补充,说明了在将物理文件恢复到本地可能会遇到的一些问题。

阿里云官方文档上已经对这个部分进行了说明,但是其中有一些小的细节上可能还没有说的特别清楚,这篇文章是对官方文档的一个补充。

https://help.aliyun.com/knowledge_detail/41817.html?spm=5176.11065259.1996646101.searchclickresult.c7c7321cwLnuFj

前提条件(再次强调):

  1. 本地的数据库版本要和RDS本身的数据库版本一致。如果RDS是5.7的,那么本地也要是5.7的版本。对于5.6版本也是一样。
    请最好使用二进制文件安装mysql:下载链接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
  2. Percona XtraBackup的版本:5.6和之前的要使用2.3,5.7使用2.4。

1

在官方文档中有说明对 backup-my.cnf文件中一些参数进行注释,但是在某些环境下,仅仅对这些参数进行注释,可能还不够,需要对所有的参数都进行注释掉。参考下面的修改

# This MySQL options file was generated by innobackupex.

# The MySQL server
[mysqld]
#innodb_checksum_algorithm=innodb
#innodb_log_checksum_algorithm=innodb
#innodb_data_file_path=ibdata1:200M:autoextend
#innodb_log_files_in_group=2
#innodb_log_file_size=1572864000
#innodb_fast_checksum=false
#innodb_page_size=16384
#innodb_log_block_size=512
#innodb_undo_directory=.
#innodb_undo_tablespaces=0


#rds_encrypt_data=false
#innodb_encrypt_algorithm=aes_128_ecb

2

如果直接使用按照文档中的方式启动 mysql(mysqld_safe --defaults-file...),然后登录(mysql -uroot -p<数据库密码>) 可能会遇到权限问题,导致登录不上的情况。
image

所以下面会对这个部分再进行一下补充:

第一个方法

直接使用原来RDS中的账号进行登录,因为系统表是从原来rds中"继承"下来的,所以使用原来RDS创建的账号也是能够登录的。

第二个方法

由于RDS是PaaS服务,所以在一些权限上的确是做了一些修改,比如对原生mysql中root账号就进行了限制,用户是无法得到这个账号级别的权限的。有些客户希望将数据恢复到本地以后,能够"无限制"的使用,那么可以参考下面的方法进行:

将物理备份恢复到本地以后,可以使用 aliyun_root管理mysql, 但是需要对 aliyun_root 进行密码重置。

使用无密码的方式进行启动mysql服务。添加参数:--skip-grant-tables

mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --skip-grant-tables --user=mysql --datadir=/home/mysql/data

然后使用 下面的方法进行重置:

mysql -hlocalhost -uroot 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#重置密码
mysql> SET PASSWORD FOR 'aliyun_root'@'127.0.0.1' = PASSWORD('Fdsa1234');
Query OK, 0 rows affected, 1 warning (0.00 sec)

#使用aliyun_root账号登录
mysql -h127.0.0.1 -ualiyun_root -pFdsa1234 

这样就解决了权限的问题。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
5天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
5天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
6天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql
|
6天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作
|
6天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。
|
7天前
|
关系型数据库 MySQL 数据库
【MySQL】:数据库事务管理
【MySQL】:数据库事务管理
20 0
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
14 0
|
7天前
|
SQL 关系型数据库 数据库
【MySQL】:DDL数据库定义与操作
【MySQL】:DDL数据库定义与操作
11 0
|
7天前
|
Java 关系型数据库 MySQL
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术