# iptables
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
# firewalld (CentOS 7+)
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
# 驗證
netstat -anp | grep 3306
iptables -L -n | grep 3306
控制台 → Windows Defender 防火牆 → 進階設定 → 入站規則 → 新增規則 → 連接埠 TCP 3306 → 允許連線。
-- 方式 1:修改 user 表 host(舊版通用)
USE mysql;
UPDATE user SET Host = '%' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
-- 方式 2:GRANT 授權(推薦,支援密碼策略)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON mydb.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
-- 僅允許特定 IP
GRANT ALL PRIVILEGES ON mydb.* TO 'remote_user'@'192.168.1.100' IDENTIFIED BY 'StrongPass123!';
⚠ WITH GRANT OPTION 允許該用戶再授權,最小權限原則建議移除。
[mysqld]
# 預設 127.0.0.1 僅本機
bind-address = 0.0.0.0
# 或註釋掉該行(MySQL 8.0+ 預設 0.0.0.0)
修改後 systemctl restart mysqld 或重啟服務。
# 客戶端測試
mysql -h 192.168.1.50 -u remote_user -p
# 抓包確認
tcpdump -i eth0 port 3306 -nn
DELETE FROM mysql.user WHERE User='root' AND Host='%';REQUIRE SSL 於 GRANT 子句,配合 require_secure_transport=ON。audit_log 插件記錄登入/操作。