GCP Compute Engine上MySQL无法连接问题求助
解决GCP VM上MySQL外部连接被拒绝(4003)的问题
以下是排查和解决这个问题的关键步骤:
修改MySQL绑定地址
MySQL默认仅监听本地回环地址127.0.0.1,外部请求无法到达。找到MySQL配置文件(常见路径为/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnf),将bind-address参数改为0.0.0.0(允许所有IP访问)或VM的内部IP,随后重启服务:sudo systemctl restart mysql验证MySQL监听状态
在VM上执行以下命令,确认MySQL是否在全网段监听3306端口:netstat -tulpn | grep mysql如果输出仅显示
127.0.0.1:3306,说明绑定地址配置未生效,需重新检查配置文件。核对GCP防火墙规则
确保防火墙规则满足以下要求:- 目标范围覆盖你的VM实例(可通过网络标签或实例指定)
- 来源IP设置为你本地机器的公网IP(临时测试可用
0.0.0.0/0,但不建议长期开放) - 协议为TCP,端口明确指定3306
授予MySQL用户外部访问权限
登录MySQL控制台,为连接用户授予外部访问权限(%允许所有IP,也可指定你本地IP提升安全性):GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;检查VM本地防火墙
部分Linux发行版自带的ufw或iptables可能拦截3306端口,执行以下命令开放端口:# 针对ufw sudo ufw allow 3306/tcp sudo ufw reload # 针对iptables sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT sudo iptables-save > /etc/iptables/rules.v4确认DBeaver连接配置
检查DBeaver的连接参数:确保端口为3306,用户名、密码与VM上的MySQL用户一致,未误填其他端口信息。
内容的提问来源于stack exchange,提问作者DarkDead
相关产品推荐
相关产品推荐

