現代開發多使用 ORM 自動建表,但資料庫建立與授權仍需手動執行。記錄標準建庫授權 SQL 供參考。
-- 1. 建立資料庫,指定 utf8 字符集與通用校對規則
CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 2. 建立用戶並授權(僅允許本地連線)
GRANT ALL ON `mydb`.* TO `username`@'localhost' IDENTIFIED BY 'password';
-- 3. 刷新權限生效
FLUSH PRIVILEGES;
CHARACTER SET utf8:儲存編碼為 UTF-8(支援 BMP 字符,含中文)。COLLATE utf8_general_ci:校對規則,ci 代表大小寫不敏感。GRANT ALL:授予所有權限(SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER 等)。@'localhost':限制只能從本機連線;需遠程存取請改為 @'%' 或具體 IP。FLUSH PRIVILEGES:將授權表變更載入記憶體立即生效。CREATE DATABASE `mydb` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON `mydb`.* TO `username`@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
建議:MySQL 5.5.3+ 全面支援 utf8mb4,新專案優先使用,避免 Emoji/生僻字存儲截斷。
SHOW CREATE DATABASE mydb;
SHOW GRANTS FOR 'username'@'localhost';