本文針對 MySQL 5.6/5.7 在 Windows/Linux 環境下的局域網訪問配置、用戶建立、密碼修改、權限授予提供標準化操作指令集,並說明版本差異點,適合快速部署與權限審計場景。
USE mysql;
SELECT Host, User, authentication_string FROM user; -- 5.7+
SELECT Host, User, Password FROM user; -- 5.6
UPDATE user SET Host = '%' WHERE User = 'root';
FLUSH PRIVILEGES;
安全警示:生產環境**嚴禁** root 使用 %,應建立專用應用帳號並限制具體 IP 段。
-- MySQL 5.7+ (authentication_string 欄位)
UPDATE user SET authentication_string = PASSWORD('newpass') WHERE User = 'geovindu';
UPDATE user SET plugin = 'mysql_native_password' WHERE User = 'geovindu'; -- 確保原生認證
FLUSH PRIVILEGES;
-- MySQL 5.6 (Password 欄位)
UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'geovindu';
FLUSH PRIVILEGES;
-- 5.7+
CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'StrongPass123!';
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'192.168.1.%';
FLUSH PRIVILEGES;
-- 5.6
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'192.168.1.%' IDENTIFIED BY 'StrongPass123!';
官方推薦工具:MySQL Control Center (非安裝版,SourceForge 下載),提供直觀的用戶權限矩陣管理介面。

| 項目 | MySQL 5.6 | MySQL 5.7+ |
|---|---|---|
| 密碼欄位 | Password | authentication_string |
| 認證插件 | 無預設 | mysql_native_password / caching_sha2_password |
| 建用戶語法 | GRANT ... IDENTIFIED BY | CREATE USER ... IDENTIFIED BY |
| 密碼過期策略 | 無 | 支援 password_expired |
| 權限表結構 | 較簡單 | 新增 proxy 權限、角色支援 (8.0) |
mysql_secure_installation:移除匿名用戶、禁止 root 遠端、移除 test 庫、重載權限REQUIRE SSL 在 GRANT 中指定mysql.user 審計異常帳號| 現象 | 原因 | 解決 |
|---|---|---|
| 遠端連線 1130 錯誤 | 用戶 Host 不匹配 | 建立 % 或具體 IP 的用戶,FLUSH PRIVILEGES |
| 密碼正確但無法登入 | 認證插件不匹配 (caching_sha2_password) | ALTER USER ... IDENTIFIED WITH mysql_native_password BY 'pass' |
| FLUSH PRIVILEGES 無效 | 直接修改 user 表未重載 | 必須執行 FLUSH PRIVILEGES 或 mysqladmin reload |
| 權限生效延遲 | 權限快取 | 重新連線或 FLUSH PRIVILEGES |
MySQL 權限管理核心:系統庫 user 表為源頭,FLUSH PRIVILEGES 為生效開關,版本差異在欄位名與認證插件。生產環境堅持:專用帳號 + 最小權限 + 具體 IP + 強密碼 + 定期審計 六字真言,拒絕 root 遠端、拒絕通配符濫用。