在 MySQL 中刪除資料庫使用 DROP DATABASE 指令,雖然語法簡單,但新手常因語法錯誤、權限不足或混淆 DROP DATABASE 與 DROP TABLE 而碰壁。本文整理標準用法、完整操作流程與常見錯誤解決方案。
-- 1. 查看現有資料庫
SHOW DATABASES;
-- 2. 建立測試資料庫
CREATE DATABASE myDatabase;
-- 3. 確認建立成功
SHOW DATABASES;
-- 4. 刪除資料庫
DROP DATABASE myDatabase;
-- 5. 再次確認已刪除
SHOW DATABASES;
關鍵點:
DROP DATABASE 會永久刪除資料庫及其所有表、資料、索引、權限等,**不可恢復**,操作前請務必備份。mysql> drop second;
ERROR 1064 (42000): You have an error in your SQL syntax...
near 'second' at line 1
原因: 缺少 DATABASE 關鍵字,MySQL 以為你要刪除表。
正確寫法:
DROP DATABASE second; -- 刪除資料庫
DROP TABLE second; -- 刪除表(若 second 是表名)
DROP DATABASE not_exist_db;
ERROR 1008 (HY000): Can't drop database 'not_exist_db'; database doesn't exist
解決: 先用 SHOW DATABASES; 確認名稱拼寫,或使用 DROP DATABASE IF EXISTS not_exist_db; 避免報錯。
通常因資料庫目錄下有非 MySQL 管理的檔案(如備份檔、臨時檔),導致目錄無法刪除。需手動清理資料目錄後再執行。
需具備 DROP 權限。以 root 或具備該權限的用戶執行:
GRANT DROP ON *.* TO 'user'@'host';
IF EXISTS: DROP DATABASE IF EXISTS db_name; 避免腳本執行中斷。SHOW DATABASES; 核對名稱,必要時先備份(mysqldump)。DROP DATABASE 刪整庫,DROP TABLE 刪單表,切勿混淆。DROP DATABASE 是破壞性操作,務必謹慎使用。掌握正確語法、理解常見錯誤成因,並養成備份與確認習慣,才能在資料庫管理中遊刃有餘。