国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql表物理文件被誤刪的解決方法

2024-07-24 13:11:14
字體:
來源:轉載
供稿:網(wǎng)友

前言

      1、該方法只介紹了如何救回這個表名(數(shù)據(jù)不恢復) 如果想要恢復原來數(shù)據(jù) 直接用extundelete把文件恢復后放回去即可

      2、并且是適用于平時沒有全備的情況下  如果有全備 直接那全備的frm和idb文件放回去 就可以了

      3、該方法同樣適用于數(shù)據(jù)表遷移(只遷移一個表)  因為discard再import的速度 遠比先dump再恢復的速度要快得多

建議: 平時備份一下表結構是非常重要的

-- 如果你直接刪除了mysql的表文件 (.frm .idb)  在mysql5.6 可能你就悲劇了  可能再也用不回這個表名了

例子如下

-- 全在datadir目錄下操作

-- 直接刪除了表 tracking20160501的物理文件

rm -rf tracking20160501.*       -- 刪除了表tracking20160501的frm文件和idb文件

-- 此時在數(shù)據(jù)庫已經(jīng)看不到該表

mysql> show tables;                            -- 查看數(shù)據(jù)庫表

-- 但若想再創(chuàng)建該表或刪除該表  也許就悲劇了

mysql> create table tracking20160501(id int);ERROR 1050 (42S01): Table 'tracking20160501' already exists            -- 明明已經(jīng)看不到該表了 卻顯示表已存在mysql> drop table tracking20160501;ERROR 1051 (42S02): Unknown table 'kdnet_analyze.tracking20160501'    -- 悲劇了吧 創(chuàng)建不到也刪不到。。

-- 查看一下現(xiàn)在的物理文件情況

ls tracking20160501.*tracking20160501.ibd                -- 之前刪除了的表空間文件 他自己又創(chuàng)建了個出來 可能是剛剛的create table命令導致的 這里不用理

原因: 由于直接刪除了表的物理文件 但mysql的信息庫 information_schema 或 mysql 庫對該表的信息還存在(具體記在哪里 還沒找出來) 導致mysql還認為該表存在 所以創(chuàng)建不了 刪除表時由于又找不到對應的物理文件 所以也刪除不了  這樣?。?難道這個表名就無法再用了嗎? 

有解決方法 如下

-- 找其他表(最好是表結構一樣的) 這里找的表叫ip_taobao 先復制這個表的.frm(表結構)文件 改名為誤刪的表名

cp -a ip_taobao.frm tracking20160501.frm            -- 這里為了保持mysql文件的擁有人和所屬組 所以使用-a參數(shù)

-- 如果下面的操作有什么奇葩問題 可以重啟一下數(shù)據(jù)庫
-- 在mysql里 使用discard space命令 廢棄誤刪表的表空間文件

alter table tracking20160501 discard tablespace;

-- 再復制ip_taobao表的表空間文件 改名為誤刪的表名

cp -a ip_taobao.ibd tracking20160501.ibd            -- 同樣使用-a 保持擁有人和所屬組

-- 在mysql里 使用import space命令 導入新的表空間文件

mysql> alter table tracking20160501 import tablespace;       -- 導入時間可能會長點Query OK, 0 rows affected, 5 warnings (7 min 36.94 sec)

-- 現(xiàn)在可以正常查詢、刪除和創(chuàng)建回這個表了

mysql> select * from tracking20160501 limit 1mysql> drop table tracking20160501;mysql> create table tracking20160501(id int);

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 景东| 白玉县| 松江区| 浮梁县| 宜兰市| 永靖县| 正镶白旗| 潞城市| 永德县| 黄浦区| 韶山市| 津南区| 乌兰察布市| 高碑店市| 华容县| 祁门县| 文成县| 商河县| 抚远县| 平遥县| 合江县| 云阳县| 抚宁县| 河池市| 长岛县| 南召县| 深泽县| 上犹县| 乌鲁木齐县| 米易县| 南溪县| 竹溪县| 长子县| 囊谦县| 大方县| 凤阳县| 常德市| 临潭县| 中宁县| 新闻| 靖宇县|