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

本地PostgreSQL连接报错排查及数据库名称查询求助

问题解决:Colab连接本地PostgreSQL失败 & 查找本地PostgreSQL数据库名称

一、解决Colab连接本地PostgreSQL被拒绝的问题

Colab运行在云端虚拟机,localhost指向的是Colab的虚拟机而非你的本地机器,这是连接失败的核心原因。按以下步骤处理:

  1. 确保本地PostgreSQL服务已启动

    • Windows:打开服务管理器,找到“postgresql-x64-xx”服务,确认状态为“正在运行”。
    • Linux/macOS:执行命令 sudo systemctl start postgresql(Linux)或 brew services start postgresql(macOS)启动服务。
  2. 配置PostgreSQL允许远程连接

    • 修改postgresql.conf文件(路径通常为/var/lib/postgresql/xx/main/(Linux)、/usr/local/var/postgres/(macOS)或C:\Program Files\PostgreSQL\xx\data\(Windows)),设置:
      listen_addresses = '*'
      
    • 修改pg_hba.conf文件,添加一行允许远程连接的规则(临时测试可放宽权限,生产环境需限制IP):
      host    all             all             0.0.0.0/0               scram-sha-256
      
    • 重启PostgreSQL服务使配置生效:
      • Linux:sudo systemctl restart postgresql
      • macOS:brew services restart postgresql
      • Windows:在服务管理器中重启对应服务。
  3. 暴露本地PostgreSQL到公网并更新连接字符串

    • 由于Colab无法直接访问本地私有网络,需用工具(如ngrok)将本地5432端口映射到公网:
      1. 下载并启动ngrok:ngrok tcp 5432
      2. 复制ngrok输出的公网地址(如tcp://0.tcp.ngrok.io:12345),提取主机和端口,替换连接字符串中的localhost:5432,最终连接字符串类似:
        connection_string = "postgres://<你的用户名>:<密码>@0.tcp.ngrok.io:12345/<数据库名>"
        
    • 注意:如果本地机器有公网IP,可直接用公网IP代替localhost,并确保防火墙开放5432端口。

二、查找本地PostgreSQL数据库名称的方法

有三种常用方式:

  1. 命令行交互模式

    • 打开终端,执行psql -U postgres(默认超级用户为postgres)进入交互界面。
    • 输入命令 \l 并回车,即可列出所有数据库的名称、所有者、编码等信息。
  2. 直接终端命令

    • 在终端执行以下命令,无需进入交互模式即可查看数据库列表:
      psql -U postgres -l
      
  3. GUI工具(如pgAdmin)

    • 打开pgAdmin,连接到本地PostgreSQL服务器后,展开“Databases”节点,即可看到所有数据库名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:50:12