為了資料庫安全,生產環境應避免使用 % 通配符開放所有 IP 連線。本文提供針對特定 IP 或主機授權的標準 SQL 範例。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'maozhuxi123' WITH GRANT OPTION;
FLUSH PRIVILEGES;
風險提示:% 代表任意主機,生產環境嚴禁對 root 使用此授權。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'218.12.50.60' IDENTIFIED BY 'maozhuxi123' WITH GRANT OPTION;
FLUSH PRIVILEGES;
僅允許 218.12.50.60 這台機器以 root 身份連線,大幅降低暴力破解風險。
GRANT ALL ON db_name.* TO 'user'@'ip' ...GRANT SELECT,INSERT ON db.tbl TO 'user'@'ip' ...REVOKE ALL PRIVILEGES ON *.* FROM 'user'@'ip';SHOW GRANTS FOR 'user'@'ip';my.cnf 中 bind-address=0.0.0.0 或具體內網 IP,不可為 127.0.0.1caching_sha2_password,舊版驅動需改用 mysql_native_password