这两个文件可以批量恢复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文件夹还在等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)