Files
akmon/doc_news/SUPABASE_NAVICAT_CONNECTION_GUIDE.md
2026-01-20 08:04:15 +08:00

4.6 KiB
Raw Permalink Blame History

Navicat 连接 Supabase PostgreSQL 解决方案

🔍 错误说明

错误信息: tenant or user not found

原因: Supabase的PostgreSQL连接需要特定的连接参数和认证方式与普通PostgreSQL略有不同。

🛠️ 解决方案

步骤1: 获取正确的连接信息

  1. 登录 Supabase Dashboard
  2. 选择您的项目
  3. 点击左侧菜单 Settings > Database
  4. Connection info 部分找到连接信息

步骤2: Navicat连接配置

基本连接设置

字段 示例
连接名 自定义名称 My Supabase DB
主机 Supabase提供的Host db.xxxxxxxxxxxxx.supabase.co
端口 5432 5432
数据库 postgres postgres
用户名 postgres postgres
密码 创建项目时设置的密码 your_database_password

重要配置细节

  1. 主机地址格式:

    db.[项目引用ID].supabase.co
    
    • ⚠️ 不要使用 https:// 前缀
    • ⚠️ 确保是 db. 开头,不是 api.
  2. 端口: 必须是 5432

  3. 数据库名: 必须是 postgres

  4. 用户名: 必须是 postgres

  5. 密码: 这是您创建Supabase项目时设置的数据库密码

    • ⚠️ 不是Supabase账户密码
    • ⚠️ 不是API Key

步骤3: SSL配置 (重要)

在Navicat的连接设置中:

  1. 点击 SSL 选项卡
  2. 勾选 使用SSL
  3. SSL模式选择: requireprefer
  4. 不需要配置证书文件

步骤4: 高级设置

高级 选项卡中:

  • 连接超时: 设置为 30
  • 服务器版本: 选择 PostgreSQL 15 或更高版本

🔧 常见问题排查

问题1: 找不到项目引用ID

解决方案:

  1. 在Supabase Dashboard中
  2. 进入 Settings > General
  3. 复制 Reference ID
  4. 主机格式: db.[Reference ID].supabase.co

问题2: 密码错误

解决方案:

  1. 确认使用的是数据库密码,不是账户密码
  2. 如果忘记密码,在 Settings > Database 中重置
  3. 重置后等待几分钟再尝试连接

问题3: 网络连接问题

解决方案:

  1. 检查防火墙设置确保允许5432端口
  2. 尝试使用VPN或更换网络环境
  3. 检查公司网络是否阻止外部数据库连接

问题4: SSL连接失败

解决方案:

  1. 确保启用SSL
  2. 如果SSL连接失败尝试不同的SSL模式:
    • require (推荐)
    • prefer
    • allow

📋 完整连接示例

示例1: 标准连接

连接名: Supabase Production
主机: db.abcdefghijklmnop.supabase.co
端口: 5432
数据库: postgres
用户名: postgres
密码: your_secure_password_123
SSL: 启用 (require)

示例2: 连接字符串格式

postgresql://postgres:your_password@db.abcdefghijklmnop.supabase.co:5432/postgres?sslmode=require

🔍 验证连接

连接成功后,您应该能看到以下数据库结构:

postgres (数据库)
├── auth (schema) - Supabase认证系统
├── public (schema) - 您的应用数据
│   ├── ak_contents
│   ├── ak_topics  
│   ├── ak_comments
│   └── ... (其他表)
├── storage (schema) - Supabase存储系统
└── ... (其他系统schema)

🚀 连接成功后的操作

  1. 部署数据库结构:

    • 在Navicat中打开SQL编辑器
    • 粘贴 ai_multilingual_news_database.sql 内容
    • 执行SQL脚本
  2. 插入演示数据 (可选):

    • 执行 topics_comments_init_data.sql
  3. 验证部署:

    -- 检查表是否创建成功
    SELECT table_name FROM information_schema.tables 
    WHERE table_schema = 'public' AND table_name LIKE 'ak_%';
    

💡 小贴士

  1. 保存连接信息: 成功连接后保存连接配置,避免重复输入
  2. 定期备份: 使用Navicat的备份功能定期备份数据
  3. 查询优化: 利用Navicat的查询构建器和执行计划功能
  4. 数据同步: 可以使用Navicat的数据同步功能在不同环境间同步数据

🆘 仍然无法连接?

如果按照以上步骤仍然无法连接,请检查:

  1. Supabase项目状态: 确保项目处于活跃状态
  2. 账户余额: 确保Supabase账户没有欠费
  3. 区域限制: 某些地区可能有网络限制
  4. 工具版本: 确保Navicat是最新版本

替代连接工具

如果Navicat仍有问题可以尝试:

  • pgAdmin 4 (免费)
  • DBeaver (免费)
  • DataGrip (JetBrains)
  • Supabase Dashboard 内置SQL编辑器

更新时间: 2025年6月18日
适用版本: Supabase 所有版本
工具版本: Navicat 16+ 推荐