萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL DROP DATABASE 刪除資料庫指令與常見錯誤排查

在 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 會永久刪除資料庫及其所有表、資料、索引、權限等,**不可恢復**,操作前請務必備份。
  • 資料庫名稱區分大小寫取決於作業系統:Linux/Unix 區分,Windows 不區分。

二、常見錯誤與解決方案

錯誤 1:ERROR 1064 (42000) - 語法錯誤

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 是表名)

錯誤 2:ERROR 1008 (HY000) - 資料庫不存在

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; 避免報錯。

錯誤 3:ERROR 1010 (HY000) - 刪除資料庫目錄失敗

通常因資料庫目錄下有非 MySQL 管理的檔案(如備份檔、臨時檔),導致目錄無法刪除。需手動清理資料目錄後再執行。

錯誤 4:權限不足

需具備 DROP 權限。以 root 或具備該權限的用戶執行:

GRANT DROP ON *.* TO 'user'@'host';

三、最佳實踐建議

  1. 習慣加 IF EXISTS: DROP DATABASE IF EXISTS db_name; 避免腳本執行中斷。
  2. 生產環境雙重確認: 執行前先 SHOW DATABASES; 核對名稱,必要時先備份(mysqldump)。
  3. 區分 DATABASE 與 TABLE: DROP DATABASE 刪整庫,DROP TABLE 刪單表,切勿混淆。

四、總結

DROP DATABASE 是破壞性操作,務必謹慎使用。掌握正確語法、理解常見錯誤成因,並養成備份與確認習慣,才能在資料庫管理中遊刃有餘。

copyright © 萬盛學電腦網 all rights reserved