mysql数据库frm文件和ibd文件可以删除吗

mysql数据库frm文件和ibd文件可以删除吗,第1张

这两个文件可以批量恢复innoDB表

创建已经丢失的表结构

先要安装 mysql-utilities。

// RedHatyum -y install mysql-server mysql-utilities// Debianapt install mysql-utilities

使用 mysqlfrm 从 frm 文件里面找回建表语句。

// 分析一个 frm 文件生成建表的语句mysqlfrm --diagnostic /var/lib/mysql/test/t1frm// 分析一个目录下的全部frm文件生成建表语句root@username:~# mysqlfrm --diagnostic /var/lib/mysql/my_db/bk/ >createtbsqlroot@username:~# grep "^CREATE TABLE" createtbsql |wc -l124

可以看到一共生成了 124 个建表语句。

有很多时候也可以从其它库里面生成建表语句,如同一个应用的其它数据库或不同的测试环境,采用下面的 mysqldump 生成建表语句:

mysqldump --no-data --compact my_db>createtbsql

登录 MySQL 生成表。

mysql> create database my_db;mysql> use my_dbDatabase changedmysql> source createtbsqlQuery OK, 0 rows affected (007 sec)

导入旧的数据文件

将新建的没有包括数据的 ibd 文件抛弃

root@username:/var/lib/mysql/my_db# ll ibd|wc12411167941root@username:/var/lib/mysql/my_db# mysql -e "show tables from my_db" \| grep -v  Tables_in_my_db  \| while read a; do mysql -e "ALTER TABLE my_db$a DISCARD TABLESPACE"; doneroot@username:/var/lib/mysql/my_db# ll ibd|wcls: cannot access 'ibd': No such file or directory000

可以看到所有的 idb 文件都已经被抛弃了。然后把旧的有数据的 ibd 文件拷贝到这个 my_db 目录下面,别忘了把属主改过来:chown mysql ,再把这些数据文件 import 到数据库中。

root@username:/var/lib/mysql/my_db# mysql -e "show tables from my_db" \| grep -v  Tables_in_my_db  \| while read a; \do mysql -e "ALTER TABLE my_db$a import TABLESPACE"; done

导入完成后检查表

使用 mysqlcheck 对数据库 my_db 下的所有表进行检查:

root@username:/var/lib/mysql/my_db# mysqlcheck -c my_dbmy_dbcdp_backup_point                             OK

所有的表都导入成功。

1、打开mysql的客户端 这里使用navicat,连接数据库,等到navicat主页面,双击需要 *** 作的数据库连接。

2、登录到数据库主页面后,点击左侧的数据库连接,打开数据库,可以看到可以 *** 作的所有数据库。

3、这时有有两个数据库,目标是将数据1的所有数据同步到数据库2上,需要点击主页面上的。

4、打开工具菜单,选择数据库同步菜单,d出数据同步的对话框,可以选择数据源,目标数据库。

5、选择数据库源和需要 *** 作的数据库后,然后在选择目标数据库连接,目标数据库,然后在选择需要 *** 作的表,点击开始即可。

停止MySQL服务。

修改myini,

在文件最后增加上面一行指令 innodb_force_recovery=4

修改文件中datadir以及innodb_data_home_dir的指向--指向之前的数据文件目录。

保存myini。

重新启动MySQL。

检查数据库及表,是否恢复正常。

如正常,去掉myini中的innodb_force_recovery = 4

重新启动MySQL。

OK。

同学你好,很高兴为您解答!

很抱歉,没有遇到过类似的情况

希望我的回答能帮助您解决问题,如您满意,请采纳为最佳答案哟。

再次感谢您的提问,更多财会问题欢迎提交给高顿企业知道。

高顿祝您生活愉快!

以上就是关于mysql数据库frm文件和ibd文件可以删除吗全部的内容,包括:mysql数据库frm文件和ibd文件可以删除吗、如何清理mysql数据库缓存数据、Mysql中InnoDb数据如何恢复重做了系统,只有data文件夹还在等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10154273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存