MySQL 以「資料目錄下的子目錄 = 資料庫」極簡設計實作資料庫管理。本文揭示 CREATE/DROP/SHOW DATABASE 背後對應的 mkdir/chmod 700、rm -rf、ls 操作本質,並說明為何無需額外系統表。
my_db ↔ 目錄 DATADIR/my_db/mysql:mysql、700 (僅服務器進程可存取)。| SQL 指令 | 等效檔案系統操作 | 差異說明 |
|---|---|---|
CREATE DATABASE db_name | mkdir DATADIR/db_name; chmod 700 DATADIR/db_name | MySQL 自動設定擁有者/權限 |
DROP DATABASE db_name | rm -rf DATADIR/db_name | MySQL 僅刪除已知副檔名檔案 (.frm/.MYD/.MYI 等),保留未知檔案與目錄本身 |
SHOW DATABASES | ls DATADIR/ | 直接列出子目錄名,無需系統表 |