likes
comments
collection
share

Centos7+ mariadb5.X 使用 ibdata 和 frm 文件恢复 MySQL 数据库

作者站长头像
站长
· 阅读数 12

没事做了个实验,由于低版本的mariadb5.x 对时间函数的支持少以及不支持其他的一些功能, 需要对原有的数据库版本进行升级

数据库升级

升级涉及到两步:
    1:原有数据库的备份
      - [mysqldump命令备份](https://www.cnblogs.com/kissdodog/p/4174421.html)
      - 或者通过备份数据库存储文件目录 (yum 安装的mariadb路径在 /var/lib/mysql)
    2. 数据库停止服务,卸载原有版本,删除遗留数据。之后yum 安装新的版本  

数据库恢复

如果你采用了 备份数据库存储文件目录 进行了备份,那么就要开始这段旅程了

  • 新数据库版本和原数据库不兼容,新版本的数据库有 tablename.frm 和tablename.ibd。
  • 而原有的数据库下面 只有 db.opt 和 .frm 文件,返回到上级目录(/var/lib/mysql),看到有个ibdata文件,这个就是整个数据库存放数据的文件。
  • 所以恢复数据是对全部数据库进行恢复,不能对单个数据库进行恢复。====
 1. 首先找一台新的服务器, 搭建和原数据库版本一致的mariadb
 2. 停止mysql 服务: systemctl stop mariadb
 3. 将原来的备份好的 /var/lib/mysql 替换掉新服务器的 /var/lib/mysql下面的文件
 4. 设置mysql /etc/my.cnf.d/server.conf 中 [mysqld]中 innodb_force_recovery=6
 5. 启动mysql systemctl start mariadb

可能出现的错误

命令行查看 systemctl status mariadb 日志查看 vim /var/lib/mysql/**.err文件

 **Mysql报错
 [ERROR] mysqld: Can't find file: './mysql/host.frm' (errno: 13)
 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
 
解决方法:
      mysql_install_db
      chown -R mysql:mysql ./*

参考文献:

cnzhx.net/blog/restor… blog.csdn.net/lihuarongai… blog.csdn.net/weixin_3173…

总结:

中间走了一些弯路, 还是要多看日志。哈哈,这个坑趟过了就会有更多的坑在前方

转载自:https://juejin.cn/post/6963899018942349320
评论
请登录