Initial commit of akmon project

This commit is contained in:
2026-01-20 08:04:15 +08:00
commit 77a2bab985
1309 changed files with 343305 additions and 0 deletions

View File

@@ -0,0 +1,177 @@
# 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+ 推荐