通过SSH隧道连接MySQL遇getaddrinfo ENOTFOUND错误求助
解决VSCode数据库工具SSH隧道连接
getaddrinfo ENOTFOUND错误的办法 1. 验证主机名解析与拼写
- 确认VSCode数据库工具中填写的
test-db01.somedomain.com和终端SSH使用的主机名完全一致,无空格、拼写错误(域名不区分大小写,但需避免笔误)。 - 在终端执行
nslookup test-db01.somedomain.com或ping test-db01.somedomain.com,检查本地机器能否正常解析该域名的IP。若解析失败,可直接用解析出的IP替代域名填入VSCode,或检查本地DNS配置。
2. 核对SSH隧道配置项
VSCode数据库工具(如MySQL扩展)的SSH隧道需确保以下配置准确:
- SSH主机:填写
test-db01.somedomain.com或其对应IP - SSH端口:默认22,若远程主机修改过SSH端口需同步填写
- SSH用户名:终端SSH时使用的用户名(若远程用户名与本地不同,需明确填写为
远程用户名@test-db01.somedomain.com) - SSH密钥路径:手动指定本地私钥的绝对路径,比如
~/.ssh/id_rsa(mac/Linux)或C:\Users\你的用户名\.ssh\id_rsa(Windows),避免VSCode无法自动识别密钥位置 - 密钥密码短语:输入终端SSH时使用的密码短语,确保无输入错误
3. 配置VSCode SSH Config文件
若直接填写主机名无效,可通过SSH配置文件简化连接:
- 打开VSCode,按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),输入Remote-SSH: Open SSH Configuration File,选择用户级配置文件 - 在文件中添加以下内容(替换占位符为实际信息):
Host test-db01 HostName test-db01.somedomain.com User 你的远程用户名 IdentityFile ~/.ssh/id_rsa
- 保存后,在VSCode数据库工具的SSH隧道配置中,SSH主机填写
test-db01(即配置中定义的Host别名),再尝试连接
4. 排查防火墙与代理干扰
- 暂时关闭本地防火墙,测试是否能正常连接,排除防火墙阻止VSCode发起SSH请求的可能
- 若使用代理,检查VSCode的代理设置是否正确,可将
test-db01.somedomain.com添加到代理例外列表
5. 更新软件与扩展
确保VSCode为最新版本,同时更新MySQL、Remote-SSH等相关扩展,旧版本的兼容性问题可能导致连接失败
内容的提问来源于stack exchange,提问作者Greg Peckory
相关产品推荐
相关产品推荐

