新裝 MySQL 包含的兩個系統庫
結論:絕對不可刪除!
1. information_schema:數據字典與元數據倉庫
- 存儲 MySQL 服務器**所有對象的定義信息**:數據庫、表、列、索引、視圖、存儲過程、觸發器、權限等
- 實時反映**進程訪問狀態**、**統計信息**、**鎖狀態**等運行時數據
- 本質是**虛擬表**,不佔用實際磁盤空間(僅佔用內存)
- 刪除後 MySQL 核心功能癱瘓:無法解析表結構、無法權限校驗、無法優化查詢
2. mysql:核心權限與系統數據庫
- 存儲**用戶賬戶**、**權限表**(user、db、tables_priv、columns_priv、procs_priv 等)
- 存儲**時區數據**、**幫助文檔**、**事件調度器任務**、**插件信息**等系統數據
- 支援
GRANT/REVOKE、CREATE USER 等權限操作的底層存儲
- 刪除後:所有用戶無法登入、權限體系崩潰、系統功能不可用
常見誤區澄清
「這兩個庫很小不佔空間,為什麼要刪除?」
正是因為它們是**核心基礎設施**,而非業務數據,所以**體積小、不可刪、不可遷移、不可輕易修改**。
information_schema 具體包含什麼?(通俗解釋)
這台 MySQL 服務器上:
- 有哪些數據庫?
- 每個庫有哪些表?
- 每張表的字段名、類型、長度、編碼?
- 有哪些索引?索引類型?
- 有哪些視圖?定義 SQL?
- 有哪些存儲過程/函數?參數簽名?
- 當前有哪些連接?執行什麼 SQL?鎖狀態?
- 表統計信息:行數、數據長度、索引長度...
所有這些**元數據**都在 information_schema 的各張虛擬表中實時可查。
操作建議
- 僅作為**只讀查詢**使用:
SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA='mydb'
- 嚴禁任何
DROP、TRUNCATE、DELETE、UPDATE 操作
- 備份策略中**無需**單獨備份這兩個庫(重裝 MySQL 自動初始化)