You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从myBinder连接Azure上Ubuntu虚拟机托管的PostgreSQL问题求助

可行配置方案

该问题核心原因为myBinder等公共运行环境默认封禁5432等非通用业务端口的TCP出站请求,代理环境也通常限制非HTTP/HTTPS协议的出站连接,可通过以下方法解决:

  • 方案1:修改PostgreSQL监听端口为443
    443为HTTPS通用端口,几乎所有公共环境均允许该端口出站。若你的Azure Ubuntu VM未占用443端口,可直接调整PostgreSQL配置:

    1. 编辑PostgreSQL配置文件postgresql.conf,将port = 5432修改为port = 443
    2. 在Azure VM的网络安全组(NSG)中添加入站规则,放行443端口的TCP请求
    3. 调整连接字符串端口为443即可:
    %sql postgresql://user:password@server.westeurope.cloudapp.azure.com:443/test_db
    
  • 方案2:配置Nginx反向代理转发数据库请求
    若443端口已被Web服务占用,可通过Nginx配置基于SNI或路径的TCP反向代理,将443端口的特定流量转发到本地5432端口,同时配置SSL加密保障传输安全,连接时仍使用443端口即可。

  • 方案3:通过代理连接数据库
    若运行环境自带HTTP代理且支持CONNECT方法访问5432端口,可在notebook中提前配置代理环境变量:

    import os
    os.environ['HTTP_PROXY'] = 'http://代理地址:代理端口'
    os.environ['HTTPS_PROXY'] = 'http://代理地址:代理端口'
    

    配置完成后再加载sql扩展执行连接操作即可。

  • 方案4:封装数据库操作为HTTP API
    该方案兼容性最强,无需调整数据库端口配置:在Azure VM上用FastAPI/Flask封装所需的数据库读写操作,将API服务部署在443端口,myBinder环境中仅需通过requests库调用API即可获取数据,完全绕开数据库端口限制。

注意:禁止在notebook代码中硬编码数据库账号密码,可通过myBinder的secret功能传入敏感信息,避免凭证泄露。

内容的提问来源于stack exchange,提问作者jtobelem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:54:07