86 lines
2.3 KiB
Markdown
86 lines
2.3 KiB
Markdown
# 数据库远程管理(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
|
||
```
|