Files
youlegames/codes/agent/game-docker/docs/08-database-remote.md

86 lines
2.3 KiB
Markdown
Raw 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 SSH 隧道)
> RDS 白名单仅开放服务器 `47.98.203.17`,任何设备需通过 SSH 隧道访问数据库,无需开放公网 IP安全可控。
---
## 原理
```
本机 Navicat ──SSH加密隧道──▶ 47.98.203.17 ──内网──▶ RDS MySQL
```
---
## 数据库与 RDS 实例对应关系
| 数据库 | RDS 主机 |
|--------|---------|
| `agent_db``agent_db_temp``game_field``youlehudong` | `rm-bp1btyuwq77591x0jpo.mysql.rds.aliyuncs.com` |
| `game_db``grade_db` | `rm-bp1749tfxu2rpq670lo.mysql.rds.aliyuncs.com` |
---
## Navicat 连接配置(以 agent_db 为例)
### 第一步SSH 标签页
| 字段 | 值 |
|------|----|
| 使用 SSH 通道 | ✅ 勾选 |
| 主机 | `47.98.203.17` |
| 端口 | `22` |
| 用户名 | `root` |
| 验证方法 | **公钥** |
| 私钥文件 | `C:\Users\{你的用户名}\.ssh\id_ed25519` |
> **注意**:当前服务器已授权的密钥为 `id_ed25519`(标识 `youle-deploy`),选错密钥会导致认证失败。
### 第二步:常规标签页
| 字段 | 值 |
|------|----|
| 主机名/IP | `rm-bp1btyuwq77591x0jpo.mysql.rds.aliyuncs.com` |
| 端口 | `3306` |
| 用户名 | `games` |
| 密码 | `Games0791!!` |
| 数据库 | `agent_db`(可留空后再选) |
> ⚠️ **常见错误2013 错误)**:常规标签的主机名填了 `127.0.0.1` 或 `localhost`,会连接到服务器本机而非 RDS导致握手失败。必须填 RDS 完整域名。
---
## 新设备接入
在新设备上执行以下步骤:
```powershell
# 1. 生成密钥对(如没有)
ssh-keygen -t ed25519 -C "设备标识备注"
# 2. 查看公钥内容
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub"
```
将公钥内容追加到服务器:
```bash
ssh root@47.98.203.17 "echo 'ssh-ed25519 AAAA...你的公钥内容...' >> ~/.ssh/authorized_keys"
```
之后 Navicat SSH 标签填写该设备的私钥路径即可。
---
## 命令行手动隧道(可选)
如需在命令行工具(如 mysql CLI中使用可手动建立隧道
```bash
# 建立隧道(保持此终端运行,另开终端连接)
ssh -L 3307:rm-bp1btyuwq77591x0jpo.mysql.rds.aliyuncs.com:3306 root@47.98.203.17 -N
# 另开终端,连接本地转发端口
mysql -h 127.0.0.1 -P 3307 -u games -p agent_db
```