首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 數據庫創建、刪除與切換:權限、風險與最佳實踐

     編輯:MySQL 資料庫相關知識

MySQL 數據庫級 DDL 三板斧:CREATE、DROP、USE 完全指南

數據庫是最高級邏輯容器,操作需謹慎。本文詳解三條語句語法、權限模型、隱性風險及運維建議。

1. CREATE DATABASE

CREATE DATABASE [IF NOT EXISTS] db_name
    [DEFAULT] CHARACTER SET charset_name
    [DEFAULT] COLLATE collation_name;
  • IF NOT EXISTS:避免重複報錯,腳本冪等必備。
  • 字符集/校驗規則:未指定則繼承服務器默認(character_set_server、collation_server)。**強烈建議顯式指定 UTF8MB4**。
  • 權限:需 CREATE 權限。
  • 本質:在數據目錄下創建同名子目錄。

2. DROP DATABASE

DROP DATABASE [IF EXISTS] db_name;
  • 極高危操作**:物理刪除目錄下所有表文件(.frm/.ibd/.MYD/.MYI 等)。
  • IF EXISTS:避免不存在報錯。
  • **不刪除**非表文件(如自定義文本、腳本),目錄本身**不會被刪除**(殘留空目錄)。
  • 權限:需 DROP 權限。
  • **無回滾,無回收站**。執行前必須確認備份可用。

3. USE

USE db_name;
  • 設置**當前會話**的默認數據庫,後續未限定库名的表操作隱含在此庫。
  • 需對庫有**任意權限**(SELECT/INSERT 等均可)。
  • 非強制:可用 db_name.tbl_name 完全限定名跨庫訪問。
  • 會話級:斷開連接失效,重連不記憶上次選擇。多線程環境下無「全局默認庫」概念。
  • 可在同一會話中多次 USE 切換不同庫。

運維最佳實踐

  1. **命名規範**:小寫+下劃線(biz_order),避免大小寫敏感問題(Linux 區分,Windows 不區分)。
  2. **字符集統一**:建庫時顯式 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci。
  3. **刪除保護**:生產庫收回 DROP 權限,僅 DBA 通過變更流程執行。
  4. **自動化腳本**:創建庫同步創建監賬號、權限、備份策略、監控採集配置。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved