MySQL 預設 root@localhost 僅允許本地連線。遠程連線需:建立支援遠程的帳號 + 授權 + 防火牆/路由開放 3306。
mysql -u root -p
USE mysql;
UPDATE user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES;
風險:root 開放所有 IP 連線,安全性極低。
-- 允許任意 IP 以密碼 admin123 連線
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin123' WITH GRANT OPTION;
FLUSH PRIVILEGES;
-- 僅允許特定 IP
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.104' IDENTIFIED BY 'admin123' WITH GRANT OPTION;
FLUSH PRIVILEGES;
telnet 公網IP 3306 連通即可。mysql -h 公網IP -u 用戶名 -p密碼
出現 mysql> 提示符即成功。