VSCode使用Snowflake Python连接器出现getaddrinfo failed连接错误如何解决
问题根因
[Errno 11001] getaddrinfo failed 属于DNS域名解析失败错误,和你配置的OCSP参数没有关联。从报错日志的Host字段可以看到,你的Snowflake实例地址被错误带入了URL编码后的尖括号字符(<对应编码%3c、>对应编码%3e),系统尝试解析%3cqc98024.central-us.azure%3e.snowflakecomputing.com这个不存在的域名,自然会连接失败。
解决步骤
- 第一步:修正连接配置的account参数
你当前配置里的account值错误添加了尖括号,写为了<qc98024.central-us.azure>,删掉左右两侧的尖括号即可,正确值为qc98024.central-us.azure。 - 第二步:调整OCSP相关配置
你当前设置的ocsp_fail_open=False会在OCSP校验失败时直接阻断连接,如果你之前遇到过OCSP报错,建议修改为ocsp_fail_open=True即可。非特殊测试场景不要开启insecureMode=True,该参数会关闭SSL证书校验,存在极高的安全风险。 - 第三步:验证本地DNS解析能力
配置修改后如果仍报错,可以在本地终端执行nslookup qc98024.central-us.azure.snowflakecomputing.com,确认能正常返回IP地址。如果解析失败,可尝试切换公共DNS(如114.114.114.114、8.8.8.8)后重试。 - 第四步:检查代理配置
如果你的网络需要通过代理访问公网,需要在连接参数中补充代理配置,参考示例如下:import snowflake.connector conn = snowflake.connector.connect( user="你的用户名", password="你的密码", account="qc98024.central-us.azure", warehouse="你的计算仓名称", database="你的数据库名称", schema="你的模式名称", ocsp_fail_open=True, # 按需补充代理配置 proxy_host="代理地址", proxy_port=代理端口号, # 代理需要认证的话补充以下两个参数 # proxy_user="代理用户名", # proxy_password="代理密码" )
内容的提问来源于stack exchange,提问作者Manasa Murugan
相关产品推荐
相关产品推荐

