环境介绍
CentOS 7.6
MySQL 8.0
存储引擎:InnoDB
innodb_file_per_table=on
测试
模拟误操作手动删除gaoyu.name_list这张表的数据文件,此时数据文件还在被mysql使用,数据文件并没有被真实删除,此时切记不能重启mysql服务
[root]# rm -fr /data/mysql_8.0/gaoyu/name_list.ibd
查看mysqld进程占用的文件句柄,/data/mysql_8.0.26/gaoyu/name_list.ibd数据文件被标记为deleted
[root]# ls -l /proc/$(pidof mysqld)/fd | grep name_list
lrwx------ 1 root root 64 Dec 27 23:06 79 -> /data/mysql_8.0.26/gaoyu/name_list.ibd (deleted)
通过文件句柄恢复数据文件
[root]# cp /proc/$(pidof mysqld)/fd/79 /tmp/name_list.ibd.recover
关闭mysql服务
[root]# /etc/init.d/mysql.service stop
恢复数据文件,然后修改数据文件权限
[root]# cp /tmp/name_list.ibd.recover /data/mysql_8.0/gaoyu/name_list.ibd
[root]]# chown mysql:mysql /data/mysql_8.0/gaoyu/name_list.ibd
[root]# chmod 640 /data/mysql_8.0/gaoyu/name_list.ibd
启动mysql服务
[root]# /etc/init.d/mysql.service start
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示