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

MySQL 創建與刪除數據庫完全指南:mysqladmin、SQL 語句與 PHP 實戰

     編輯:MySQL 資料庫相關知識

mysqladmin 命令行管理

創建數據庫

mysqladmin -u root -p create testdb
# Enter password: ********

成功無輸出,失敗顯示錯誤信息。

刪除數據庫

mysqladmin -u root -p drop testdb
# Enter password: ********
# Dropping the database is potentially a very bad thing to do.
# Any data stored in the database will be destroyed.
# Do you really want to drop the 'testdb' database [y/N] y
# Database "testdb" dropped

交互確認:防止誤刪,腳本化可用 -f 強制:mysqladmin -f -u root -p drop testdb

SQL 語句管理 (通用、可腳本化)

創建數據庫

-- 基礎
CREATE DATABASE testdb;

-- 指定字符集校對 (推薦)
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 僅不存在時創建
CREATE DATABASE IF NOT EXISTS testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

刪除數據庫

DROP DATABASE testdb;
DROP DATABASE IF EXISTS testdb;

查看數據庫

SHOW DATABASES;
SHOW CREATE DATABASE testdb;  -- 顯示創建語句含字符集信息

PHP 腳本管理 (mysqli/PDO)

mysqli 面向對象

<?php
$mysqli = new mysqli('localhost', 'root', 'pass');
if ($mysqli->connect_errno) die('Connect failed: ' . $mysqli->connect_error);

// 創建
$sql = "CREATE DATABASE IF NOT EXISTS testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci";
if ($mysqli->query($sql) === TRUE) {
    echo 'Database created successfully';
} else {
    echo 'Error: ' . $mysqli->error;
}

// 刪除 (謹慎!無確認提示)
$sql = 'DROP DATABASE IF EXISTS testdb';
if ($mysqli->query($sql) === TRUE) {
    echo 'Database deleted successfully';
} else {
    echo 'Error: ' . $mysqli->error;
}
$mysqli->close();
?>

PDO 通用版

<?php
$pdo = new PDO('mysql:host=localhost', 'root', 'pass');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

try {
    $pdo->exec("CREATE DATABASE IF NOT EXISTS testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
    echo 'Created';
    // $pdo->exec("DROP DATABASE IF EXISTS testdb");
} catch (PDOException $e) {
    echo 'Error: ' . $e->getMessage();
}
?>

權限模型:誰能創建/刪除?

  • CREATE 權限:允許 CREATE DATABASE
  • DROP 權限:允許 DROP DATABASE
  • 通常授予管理賬號或部署腳本賬號:
    GRANT CREATE, DROP ON *.* TO 'deploy'@'%' IDENTIFIED BY 'pass';
  • 普通應用賬號不應擁有庫級 DDL 權限

字符集與校對規則深度解析

層級設置方式影響範圍優先級
服務端my.cnf: character-set-server新建庫默認值最低
數據庫CREATE DATABASE ... CHARSET新建表默認值→
表CREATE TABLE ... DEFAULT CHARSET新建列默認值→
列col VARCHAR(20) CHARSET utf8mb4實際存儲編碼最高
連接SET NAMES utf8mb4通信編碼轉換運行時

鐵律:四層字符集必須一致,否則產生亂碼。統一使用 utf8mb4 + utf8mb4_unicode_ci。

生產環境命名規範

  • 庫名:biz_module_env 如 order_service_prod、user_center_test
  • 表名:biz_entity 如 order_info、user_profile
  • 全小寫、下劃線分隔、無保留字、見名知意
  • 備份/遷移腳本中庫名參數化,避免硬編碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved