預設 MySQL root 僅允許本地連線(localhost/127.0.0.1),若需遠程訪問,需建立遠程帳號並授權、調整防火牆/路由器端口映射。本文提供完整操作清單。
mysql -u root -p USE mysql; UPDATE user SET host = '%' WHERE user = 'root'; FLUSH PRIVILEGES;
風險: root 擁有最高權限且開放全網 IP,極不安全。
-- 允許任意 IP 連線 CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPass123!'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; -- 或限制特定 IP CREATE USER 'remote_user'@'192.168.1.100' IDENTIFIED BY 'StrongPass123!'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'192.168.1.100' WITH GRANT OPTION; FLUSH PRIVILEGES;
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT。mysql -h 公網IP -u remote_user -p # 或使用 telnet 公網IP 3306 測試端口通達性
*.*。REQUIRE SSL 於 GRANT 子句中。bind-address = 0.0.0.0 於 my.cnf 監聽所有介面(預設 127.0.0.1)。mysql.user 表,移除無用帳號。