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
-- 基礎 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 = 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();
?>
<?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 DATABASEDROP 權限:允許 DROP DATABASEGRANT CREATE, DROP ON *.* TO 'deploy'@'%' IDENTIFIED BY 'pass';| 層級 | 設置方式 | 影響範圍 | 優先級 |
|---|---|---|---|
| 服務端 | 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_testbiz_entity 如 order_info、user_profile