加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

复原云数据库MySQL的备份文件到自建数据库

发布时间:2023-08-07 14:28:47 所属栏目:MySql教程 来源:
导读:前提条件:

本地MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同。

操作系统中已安装数据恢复工具Percona XtraBackup 2.2.9或以上版本

请从Percona XtraBackup官网下载:https://ww
前提条件:
 
本地MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同。
 
操作系统中已安装数据恢复工具Percona XtraBackup 2.2.9或以上版本
 
请从Percona XtraBackup官网下载:https://www.percona.com/downloads/XtraBackup/LATEST/
 
percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm 是rpm包安装快速
 
# yum localinstall percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm
 
 
操作系统中已安装数据备份文件解压工具rds_backup_extract.sh
 
下载地址:http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh?spm=a2c4g.11186623.2.6.Ng5QVG&file=rds_backup_extract.sh
 
操作步骤:
 
在阿里云RDS管理控制台,在数据备份列表中,找到要下载的数据备份,并单击其对应的下载。
 
 
具体操作步骤如下:
 
执行如下命令,下载数据备份文件
 
wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>.tar.gz
 
-c:启用断点续传模式。
 
-O:将下载的结果保存为指定的文件(建议使用URL中包含的文件名)。
 
 
将下载的数据备份恢复到本地MySQL数据库中,具体操作步骤如下:
 
执行如下命令,解压已下载的数据备份文件。
 
说明:本文以自定义路径/home/mysql/data为例,您可以根据实际情况将其替换成实际路径。
 
1.bash rds_backup_extract.sh -f <数据备份文件名>.tar.gz -C /home/mysql/data
 
-f:指定要解压的备份集文件。
 
C:指定文件要解压到的目录。可选参数,若不指定就解压到当前目录
 
# bash rds_backup_extract.sh -f hins2642811_data_20180227013214.tar.gz -C data
 
 
2.执行如下命令,查询解压后生成的文件。
 
# ls -l data/
 
3.执行如下命令,恢复解压好的备份文件。
 
innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
 
# innobackupex --defaults-file=data/backup-my.cnf --apply-log data
 
4.为避免版本问题,需修改backup-my.cnf参数,具体操作步骤如下。
 
执行如下命令,以文本方式编辑backup-my.cnf文件。
 
# vi /home/mysql/data/backup-my.cnf
 
执行如下命令,注释掉如下参数。
 
#innodb_fast_checksum
 
#innodb_page_size
 
#innodb_log_block_size
 
 
如果报错这两个也注释
 
# innodb_checksum_algorithm=innodb
 
# innodb_log_checksum_algorithm=innodb
 
# innodb_undo_directory=.
 
# innodb_undo_tablespaces=0
 
# rds_encrypt_data=false
 
# innodb_encrypt_algorithm=aes_128_ecb
 
 
按Esc键,然后输入:wq进行保存并关闭编辑器。
 
=============================================================
 
安装mysql-server
 
下载地址:https://dev.mysql.com/downloads/mysql/
 
mysql 5.6 下载地址:
 
https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-server-5.6.39-1.el6.x86_64.rpm
 
mysql 5.7 下载地址:
 
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.21-1.el6.x86_64.rpm
 
 
这个版本是: Server version: 5.1.73
 
# yum -y install mysql-server mysql-develop mysql
 
升级mysql版本:
 
    # yum -y remove mysql-server mysql-develop mysql
 
# yum localinstall MySQL-server-5.6.39-1.el6.x86_64.rpm
 
 
报错:file /usr/share/mysql/charsets/dec8.xml from install of MySQL-server-5.6.39-1.el6.x86_64
 
  conflicts with file from package mysql-libs-5.1.73-8.el6_8.x86_64
 
 
看到“conflicts”,是产生冲突了,文件“/usr/share/mysql/charsets/*”
 
需要MySQL-server-5.6.19-1.linux_glibc2.5.x86_64版本的,而系统已经存在mysql-libs-5.1.73-8.el6_8.x86_64版本的!
 
解决办法:
 
执行以下命令,删除mysql-libs-5.1.73-8.el6_8.x86_64:
 
# yum -y remove mysql-libs-5.1.73*
 
再执行以下命令安装MySQL:
 
# yum localinstall MySQL-server-5.6.39-1.el6.x86_64.rpm
 
安装成功了。
 
安装mysql客户端:
 
下载地址:https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-client-5.6.39-1.el6.x86_64.rpm
 
# yum -y localinstall MySQL-client-5.6.39-1.el6.x86_64.rpm
 
 
=============================================================
 
5.执行如下命令,修改文件属主,并确定文件所属为MySQL用户。
 
chown -R mysql:mysql /home/mysql/data
 
# chown -R mysql:mysql data
 
 
6.执行如下命令,启动MySQL进程。
 
mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &
 
# mysqld_safe --defaults-file=/opt/data/backup-my.cnf --user=mysql --datadir=/opt/data &
 
    7.执行如下命令,登录MySQL数据库以验证进程启动成功。
 
mysql -uroot
 
 
8.恢复完成后,表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;
 
 
9.创建用户:
 
报错:mysql> grant all on *.* to xiaoyeyun@"%" identified by "xiaoyeyun";
 
  ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found
 
  42. Created with MySQL 50518, now running 50639.
 
  Please use mysql_upgrade to fix this error.
 
按照问题描述执行修复:
 
mysql_upgrade mysql -h 192.168.1.2 -u xxx -p
 
 
# mysql_upgrade mysql
 
 
创建用户成功。
 
mysql> grant all on *.* to xiaoyeyun@"%" identified by "xiaoyeyun";
 
Query OK, 0 rows affected (0.00 sec)
 
mysql> select  user,host from mysql.user;
 
+-----------+-----------+
 
| user      | host      |
 
+-----------+-----------+
 
| xiaoyeyun | %         |
 
| root      | 127.0.0.1 |
 
| root      | ::1       |
 
| root      | localhost |
 
+-----------+-----------+
 
4 rows in set (0.00 sec)
 
mysql>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章