SET PASSWORD 或 UPDATE mysql.user SET Password=PASSWORD('new') 後執行 FLUSH PRIVILEGES。mysql.user;加密密碼一旦洩露即意味著對應賬號失陷。GRANT/REVOKE 進行精細授權。MD5()/SHA1() 等單向雜湊存儲。nmap 或 telnet host 3306 確認 3306 不對不可信網開放;防火牆/路由器封鎖。%22/%23/%27;嚴禁未檢查值直入 SQL。mysql_real_escape_string、PDO::quote 等。tcpdump -l -i eth0 -w - src or dst port 3306 | strings 檢查明文洩露;以普通用戶啟動 mysqld。--skip-symbolic-links。PROCESS/SUPER 僅授管理員;前者可看全庫查詢,後者可殺連接、改參數、控制復制。LOAD DATA INFILE '/etc/passwd' 讀取敏感檔案。max_user_connections 防單賬號佔盡資源。GRANT ... WITH MAX_QUERIES_PER_HOUR ... 等限額。--local-infile=0 禁用 LOAD DATA LOCAL;--skip-grant-tables 僅救急用,生產嚴禁;--skip-show-databases 隱藏庫列表。mysqld --skip-grant-tables → UPDATE user SET Password=PASSWORD('new') WHERE User='root' → FLUSH PRIVILEGES → 正常重啟。