xtrabackup恢复MySQL8.0数据几个注意事项
公司开始使用MySQL8.0了,之前一直是MySQL5.6和MySQL5.7.之前使用xtrabackup对MySQL5.6和MySQL5.7执行数据恢复操作都没问题。现在数据库版本是MySQL8.0,按原来的套路执行就不行了。基本情况如下:数据库备份是某云服务商的云数据库,版本MySQL8.0.备份在控制台操作实现每日完整备份。根据云服务商提供的文档,可以使用xtrabackup进行恢复数据操作
公司开始使用MySQL8.0了,之前一直是MySQL5.6和MySQL5.7.
之前使用xtrabackup对MySQL5.6和MySQL5.7执行数据恢复操作都没问题。
现在数据库版本是MySQL8.0,按原来的套路执行就不行了。
基本情况如下:
数据库备份是某云服务商的云数据库,版本MySQL8.0.
备份在控制台操作实现每日完整备份。
根据云服务商提供的文档,可以使用xtrabackup进行恢复数据操作。
本地创建了一个环境,系统是Ubuntu20.04,数据库是MySQL8.0
反复进行测试恢复数据后,有以下2点要注意:
1.xtrabackup的版本问题
MySQL5.7对应是xtrabackup2.4.x。
而MySQL8.0对应的版本号也是xtrabackup 8.0.x
下载地址:Download Percona XtraBackup 8.0
2.数据文件的存取路径
在MySQL5.6和MySQL5.7版本上,恢复数据时通常我会创建一个新的目录来恢复数据。然后修改配置文件,启动服务。
这个操作在MySQL8.0会导致服务启动失败。
错误日志内会有如下类似提示:
[Server] Can't create test file /data/mysql/data/mysqld_tmp_file_case_insensitive_test...
解决问题的方法有两个:
第一个方法,把恢复的数据文件放在MySQL8.0的默认数据文件目录下。当然其权限要改为mysql为属主。
第二个方法则是使用如下命令:
mysqld --initablize-insecure 对新的数据文件目录进行一次初始化
补充一个初始化命令例子如下:
/usr/sbin/mysqld --defaults-files=/etc/mysql/my.cnf --initialize --user=mysql
更多推荐
所有评论(0)