MySQL 官方文檔提煉的 23 項安全最佳實踐,涵蓋網絡傳輸、賬號權限、密碼策略、防火牆、SQL 注入防範、審計追蹤、資源限制等維度,構建纵深防御體系。
mysql -u root → UPDATE mysql.user SET Password=PASSWORD('newpwd') → FLUSH PRIVILEGES;mysql.user 表;加密密碼一旦洩露等同賬號被盜。MD5()、SHA1() 等單向哈希存儲。nmap/telnet 掃描驗證,非信任網絡禁止訪問 3306,在防火牆/路由器層面封鎖。%22 %23 %27;嚴禁未檢查值直入 SQL。escape_string / PreparedStatement。tcpdump -l -i eth0 -w - src or dst port 3306 | strings 檢查明文洩露。--skip-symbolic-links。PROCESS 可見所有查詢文本,SUPER 可斷連接、改參數、控制復制。LOAD DATA '/etc/passwd' 讀取系統文件。Host 列只填 IP 地址。max_user_connections 變量控制。MAX_QUERIES_PER_HOUR 等配額選項。--local-infile=0 禁用 LOAD DATA LOCAL;--skip-grant-tables 僅救急用,生產嚴禁;--skip-show-databases 隱藏庫列表。1. mysqld_safe --skip-grant-tables &
2. mysql -u root mysql
3. UPDATE user SET Password=PASSWORD('newpwd') WHERE User='root';
4. FLUSH PRIVILEGES;
5. 重啟 mysqld 正常模式