本文共 3140 字,大约阅读时间需要 10 分钟。
需要本地安装的软件:
- mysql 5.7.24 版本- Percona Xtrabackup 2.4.12
注意事项:
- 本地必须是linux系统.- 不能有占用3306端口的其它程序执行.- 本次在 centos7.2 64 位系统下测试通过
恢复的详细步骤如下:
wget -c ' <数据备份文件外网下载地址> ' -O <自定义文件名> .tar.gz 自定义文件名> 数据备份文件外网下载地址>
tar -izxvf <数据备份文件名> .tar.gz -C /home/mysql/data 数据备份文件名>
ls /home/mysql/data
命令执行成功后,系统会返回如下结果,以 d 开头的蓝色目录表示数据库名称
wget -c 'https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/tarball/percona-xtrabackup-2.4.12-Linux-x86_64.libgcrypt11.tar.gz' -O Xtrabackup2.4.12.tar.gztar zxvf Xtrabackup2.4.12.tar.gzmv percona-xtrabackup-2.4.12-Linux-x86_64 Xtrabackup2.4.12
./Xtrabackup2.4.12/bin/innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data/
若系统返回如下类似结果,则说明备份文件已成功恢复到本地数据库。
如上图结果为空,表示没有.
vi /home/mysql/data/backup-my.cnf
II:按字母i键,进入编辑模式,注释如下参数,即在行首添加#号,并在尾部添加 skip-grant-tables项.
#innodb_log_checksum_algorithm=strict_crc32#innodb_fast_checksum=false#innodb_page_size=16384#innodb_log_block_size=512#redo_log_version=1#server_uuid=e4323bd1-072f-11e9-97a1-7cd30ad32d28#master_key_id=0
修改后的配置文件应是如下内容:
# The MySQL server[mysqld]innodb_checksum_algorithm=crc32#innodb_log_checksum_algorithm=strict_crc32innodb_data_file_path=ibdata1:200M:autoextendinnodb_log_files_in_group=2innodb_log_file_size=1048576000#innodb_fast_checksum=false#innodb_page_size=16384#innodb_log_block_size=512innodb_undo_directory=./innodb_undo_tablespaces=0server_id=1960504189#redo_log_version=1#server_uuid=e4323bd1-072f-11e9-97a1-7cd30ad32d28#master_key_id=0skip-grant-tables
III:按esc键,录入 :x 退出并保存修改.
修改目录属组和权限
755 -R /home/mysql/data/
mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --datadir=/home/mysql/data/ --user=mysql
注意: mysqld_safe 必须是已经加入到了系统环境变量中,否则需要写上该命令的绝对路径.
ps -ef|grep -i mysql|grep -v grep
如下图所示,表示启动成功.
mysql
下图表示登录成功:
select host,user from mysql.user;update mysql.user set authentication_string=password('新密码') where user='aliyun_root';
这时会报错,Unknown system variable 'maintain_user_list',如图:
select trigger_schema,trigger_name from information_schema.triggers;
结果如图,发现有两个sys库下的触发器.
drop trigger sys.sys_config_insert_set_user;drop trigger sys.sys_config_update_set_user;
如下图所示,表示删除成功了.
find /home/mysql/data/ -iname *.trg
结果如下图,表示触发器文件还在.
mv /home/mysql/data/mysql/*.TRG ~
再次查询,保证移除成功,下图表示移除成功.
我们退出mysql.然后关闭 mysql 服务.命令为:
mysqladmin shutdown
mysql -ualiyun_root -p -h127.0.0.1
回车,录入刚修改的密码后,就能登录了.如图表示成功登录.
好的,整个恢复步骤就完成了.
转载地址:http://ynujl.baihongyu.com/