在生產環境中,為了資料庫安全,通常需要限制 MySQL 只允許特定 IP 進行遠程連接。本文詳細說明如何配置 MySQL 授權特定 IP 或任意 IP 遠程訪問,並提供實用的 SQL 指令範例。
MySQL 使用 GRANT 語句控制用戶權限,基本語法如下:
GRANT 權限列表 ON 數據庫.表 TO '用戶名'@'主機' IDENTIFIED BY '密碼' WITH GRANT OPTION;
FLUSH PRIVILEGES;
使用通配符 % 表示任意主機,適合內網開發環境,生產環境強烈不建議使用。
-- 授權 root 用戶從任意 IP 連接,密碼設為 jb51
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jb51' WITH GRANT OPTION;
FLUSH PRIVILEGES;
將主機部分替換為具體 IP 地址,實現精確訪問控制。
-- 僅允許 218.12.50.60 這一台主機以 root/jb51 連接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'218.12.50.60' IDENTIFIED BY 'jb51' WITH GRANT OPTION;
FLUSH PRIVILEGES;
*.*。REQUIRE SSL 強制加密傳輸。bind-address 是否設為 0.0.0.0 或具體內網 IP。FLUSH PRIVILEGES; 並確認用戶@主機匹配(注意大小寫)。掌握上述配置,即可靈活控制 MySQL 遠程訪問權限,平衡開發便利性與生產安全性。