誤刪frm檔案導致建表失敗

2021-09-07 03:58:29 字數 1269 閱讀 4726

一、問題描述

想要在wx庫建立一張a表,卻報表不存在

mysql> show tables;

empty set (0.00 sec)

mysql> create table a(id int(1));

error 1050 (42s01): table 『a』 already exists

mysql>

二、問題分析

發現a表沒有frm檔案

frm檔案是歷史問題,服務層需要,和innodb沒有關係

[root@dbmssitdb204 wx]# ll

total 104

-rw-rw---- 1 mysql mysql 98304 jan 4 15:06 a.ibd

-rw-rw---- 1 mysql mysql 61 jan 4 15:06 db.opt

[root@dbmssitdb204 wx]#

三、問題處理

1、手動編輯乙個a.frm檔案(非空),切記許可權。。。,挺靠譜

[root@dbmssitdb204 wx]# cat a.frm

erererecdfdsfgsdf

[root@dbmssitdb204 wx]# ll

total 108

-rw-rw---- 1 mysql mysql 18 jan 4 15:11 a.frm

-rw-rw---- 1 mysql mysql 98304 jan 4 15:06 a.ibd

-rw-rw---- 1 mysql mysql 61 jan 4 15:06 db.opt

[root@dbmssitdb204 wx]#

進庫drop 掉表就可以了。

mysql> show tables;

±-------------+

| tables_in_wx |

±-------------+

| a |

±-------------+

1 row in set (0.00 sec)

mysql> drop table a;

query ok, 0 rows affected (0.00 sec)

mysql>

2、如果庫不大,可以將庫dump出來,再drop database ,然後再將備份導進庫里

ORACLE誤刪資料檔案導致ORA 01033錯誤

既然提示說是初始化或關閉還在進行中,我就關閉資料庫,再一步步開啟看報什麼錯。sql conn as sysdba connected.sql show user user is sys sql select from dual addr indx inst id d 0366cd54 0 1 x 這...

Oracle誤刪 DBF檔案導致資料庫連線不上解決

由於之前刪點東西,不小心把oracle中的乙個.dbf檔案給刪除了。導致了我資料庫一直連線不上,加上有乙個多月沒有使用oracle,所以弄了乙個早上才解決。下面我就來總結一下解決方法 1.以管理員的身份執行cmd,輸入 sqlplus nolog 2.接著輸入 conn sys orcl as sy...

Oracle誤刪表空間檔案

oracle誤刪表空間檔案 網上給的說法是 sqlplus as sysdba 以dba身份登陸資料庫 shutdown immediate 關閉資料庫 startup mount 開啟控制檔案 alter database open 重啟資料庫到mount狀態,然後drop掉誤刪除的檔案,再開啟資...