PhpStorm无法通过SSH隧道连接远程MySQL问题求助
解决PhpStorm SSH隧道连接远程MySQL失败(Connection refused)的问题
问题现象
- PhpStorm中SSH密钥对认证测试成功,但MySQL连接测试报错:
Failed
DBMS: MySQL (ver. 5.7.33-0ubuntu0.16.04.1) Case sensitivity: plain=exact, delimited=exact Driver: MySQL Connector/J (ver. mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0), JDBC4.2)
SSH tunnel creation failed: Connection refused. - 驱动、认证方式、MySQL用户名/数据库/密码均无变更且确认正确
- 仅操作过重置服务器端MySQL root密码,当前使用普通用户尝试连接
排查与解决方案
1. 检查MySQL绑定地址
重置root密码可能导致配置文件被修改,限制了远程访问:
- 登录服务器,编辑MySQL配置文件(路径可能为
/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf) - 找到
bind-address配置项,修改为0.0.0.0(允许所有IP访问)或服务器内网IP,避免设置为127.0.0.1(仅限本地) - 重启MySQL服务:
sudo systemctl restart mysql
2. 确认普通用户的远程访问权限
重置root密码后可能误操作影响了普通用户权限:
- 用root账号登录MySQL:
mysql -u root -p - 查看目标用户的访问限制:
SELECT user, host FROM mysql.user WHERE user='你的普通用户名'; - 如果
host为localhost或特定IP,执行命令开放远程访问:
(GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的普通用户名'@'%' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;%表示允许任意IP访问,也可指定特定IP)
3. 验证服务器本地MySQL连通性
排除MySQL服务本身故障:
- 在服务器终端执行
mysql -u 普通用户名 -p 数据库名,确认能正常连接到目标数据库
4. 检查PhpStorm SSH隧道配置细节
确保端口转发设置正确:
- 在PhpStorm的MySQL连接配置中,SSH隧道的Target host设为
127.0.0.1,Port设为3306(MySQL默认端口) - 如果本地运行了MySQL服务,可将Local port改为
3307等未被占用的端口,避免冲突
5. 检查服务器防火墙规则
确保MySQL端口允许本地访问(SSH隧道依赖服务器本地转发):
- 查看UFW防火墙状态:
sudo ufw status - 如果防火墙开启,确认3306端口允许localhost访问:
sudo ufw allow from 127.0.0.1 to any port 3306
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

