mysql表空間被占用,同名表無法建立或匯入

2021-07-12 07:27:46 字數 782 閱讀 6896

刪除mysql表(用的是innodb)時沒有用drop table命令,只是簡單刪除表目錄,,這導致表空間還存在,這樣就不可以加同名表進去。

當要重新匯入新的同名表或者建立新的同名表時,會提示錯誤

error : tablespace for table '`database`.`temp`' exists. please discard the tablespace before import.

然而,我用

drop table temp;

alter table temp discard tablespace;

error : unknown table 'database.temp'

error : table 'database.temp' doesn't exist

解決方法:去mysql資料目錄那裡將對應的ibd檔案移動到其他位置

$ ls /usr/local/homebrew/var/mysql/mazda6

table1.frm

table1.idb

table2.frm

table2.ibd

table3.idb <- problem table, no table3.frm

table4.frm

table4.idb

$ mkdir /tmp/mysql_orphans

$ mv /usr/local/homebrew/var/mysql/mazda6/table3.ibd /tmp/mysql_orphans/

這樣就可以匯入右建立同名的表

mysql 查詢表儲存空間占用

使用 schema 資料庫 mysql use information schema 字段 說明table schema 資料庫名 table name 表名engine 所使用的儲存引擎 tables rows 記錄數data length 資料大小 index length 索引大小 查詢資料庫...

mysql和oracle查詢表占用空間

mysql 需要先進入information schema select table schema as 資料庫 table name as 表名 table rows as 記錄數 truncate data length 1024 1024,2 as 資料容量 mb truncate index...

Mysql資料庫及表空間占用資訊統計

1 mysql中檢視各表的大小 這裡用到乙個表,information schema.tables 對應主要字段含義如下 able schema 資料庫名 table name 表名 engine 所使用的儲存引擎 tables rows 記錄數 data length 資料大小 index len...