# Navicat 连接 Supabase PostgreSQL 解决方案 ## 🔍 错误说明 **错误信息**: `tenant or user not found` **原因**: Supabase的PostgreSQL连接需要特定的连接参数和认证方式,与普通PostgreSQL略有不同。 ## 🛠️ 解决方案 ### 步骤1: 获取正确的连接信息 1. 登录 [Supabase Dashboard](https://app.supabase.com/) 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模式选择: `require` 或 `prefer` 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. **验证部署**: ```sql -- 检查表是否创建成功 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+ 推荐