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

178 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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+ 推荐