預設 MySQL 僅允許本機連線,若需開放遠端存取,必須透過 GRANT 指令授權特定帳號從指定主機或任意主機連線。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
適用於開發測試環境或需動態 IP 連線的應用。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
生產環境建議限制具體 IP,提升安全性。
ALL PRIVILEGES:授予所有權限(SELECT、INSERT、UPDATE、DELETE、CREATE、DROP 等)*.*:套用於所有資料庫、所有資料表IDENTIFIED BY:設定帳號密碼WITH GRANT OPTION:允許該帳號將自身權限授予其他用戶FLUSH PRIVILEGES;:執行授權後必須刷新權限生效%,改用具體 IP 或網段(如 192.168.1.%)SELECT, INSERT)SHOW GRANTS FOR 'myuser'@'%';
-- 或
SELECT Host, User FROM mysql.user WHERE User = 'myuser';