ssh -L 3306:localhost:3306 user@db 或 SSL/TLS(配置 ssl-ca/cert/key)SHA256/bcrypt 存儲,MySQL 8.0+ 默認 caching_sha2_passwordnmap -p 3306 / telnet host 3306 驗證,僅放行應用服務器 IPport=33061 降低自動掃描噪音UPDATE mysql.user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;DROP USER ''@'%'; DROP USER ''@'localhost';SELECT/INSERT/UPDATE/DELETE% 僅用於受信內網段,生產庫具體到 IPALTER USER 'app'@'%' IDENTIFIED BY 'NewPass!'; 配合密碼策略 validate_passwordPREPARE stmt FROM 'SELECT * FROM t WHERE id=?'; EXECUTE stmt USING @id;escape_string/real_escape_string%22(")、%23(#)、%27(')user=mysql,不可用 root 啟動chown -R mysql:mysql /var/lib/mysql; chmod 750 /var/lib/mysql--skip-symbolic-links 防止繞過目錄遍歷--local-infile=0 防止 LOAD DATA LOCAL 讀取任意服務器文件LOAD DATA '/etc/passwd' 讀取系統文件SHOW PROCESSLIST 可見全實例 SQL 文本;SUPER 可殺連接、改全局變量、控制復制max_user_connections=100 防單賬號佔滿連接池GRANT ... WITH MAX_QUERIES_PER_HOUR 1000 MAX_CONNECTIONS_PER_HOUR 50audit_log 插件記錄所有連接/查詢/DDLsystemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('NewPass!') WHERE User='root';
FLUSH PRIVILEGES;
systemctl restart mysqld