RDS for MySQL 备份文件恢复到自建数据库
云数据库MySQL版使用开源软件Percona Xtrabackup对数据库进行备份,所以您可以使用该软件将云数据库MySQL的备份文件恢复到自建数据库中,本文将介绍详细的操作步骤。
软件说明
- MySQL 5.6.41
- Percona XtraBackup 2.2.9
- rds_backup_extract.sh
解压数据库备份文件
1 2
| unzip -P密码 mysql_data_backup.tar.gz.zip bash rds_backup_extract -f mysql_data_backup.tar.gz -C /data/mysql/data
|
修改配置文件 backup-my.cnf 如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
[mysqld] innodb_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200M:autoextend innodb_log_files_in_group=2 innodb_log_file_size=1572864000
innodb_undo_directory=. innodb_undo_tablespaces=0
|
修改文件属主
1
| chown -R mysql:mysql /data/mysql/data
|
恢复数据文件
1 2
| chmod 400 /data/mysql/data/backup-my.cnf innobackupex --defaults-file=/data/mysql/data/backup-my.cnf --apply-log /data/mysql/data
|
启动数据库并登入验证
1
| mysqld_safe --defaults-file=/data/mysql/data/backup-my.cnf --user=mysql --datadir=/data/mysql/data --skip-grant-tables &
|
新建用户
恢复完成后,表 mysql.user 中是不包含 RDS 中创建的用户,需要新建,新建用户前请执行如下 SQL:
1 2 3 4 5
| 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;
|
参考链接
阿里云数据备份/恢复