| 用戶 | Host | 密碼 | 權限 | 風險 |
| root | localhost | 空 | 全權限 | 任意本地用戶可成超管 |
| 匿名 | localhost | 空 | test.* / test_%.* | 任意本地用戶可讀寫測試庫 |
步驟 1:為 root 設置強密碼
方法 A:mysqladmin(推薦,5.7+ 自動刷新)
mysqladmin -u root password 'StrongP@ssw0rd!'
方法 B:SQL 直改(兼容舊版)
mysql -u root mysql
UPDATE user SET authentication_string=PASSWORD('StrongP@ssw0rd!') WHERE User='root';
FLUSH PRIVILEGES;
注意:5.7+ 密碼列為 authentication_string,5.6 為 Password。PASSWORD() 8.0 棄用,建議用 ALTER USER 'root'@'localhost' IDENTIFIED BY '...';。
步驟 2:清理匿名用戶與測試庫
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%';
FLUSH PRIVILEGES;
步驟 3:驗證生效
# 應提示密碼錯誤
mysql -u root
# 應成功
mysql -u root -p'StrongP@ssw0rd!'
# 匿名連接應失敗
mysql -u '' -p''
一鍵安全腳本(mysql_secure_installation)
官方提供交互式腳本,自動完成上述所有操作:
mysql_secure_installation
# 按提示:設 root 密碼 → 移除匿名 → 禁止 root 遠程登錄 → 移除 test 庫 → 刷新權限
**生產環境建議直接運行此腳本**,並保存輸出日志備查。
Windows 特殊說明
- 配置文件為
my.ini(C:\Windows\ 或安裝目錄)。
winmysqladmin.exe 會將 my.cnf 重命名為 mycnf.bak 並生成 my.ini。
- 服務啟動讀取
my.ini,請統一在此文件維護配置。
- 上一篇文章: MySQL 內部安全加固:數據目錄文件權限、日志洩露風險與攻擊場景實測
- 下一篇文章: MySQL 資料目錄位置查找與管理完整指南
Copyright ©
程式碼之家 All Rights Reserved