2.3 KiB
2.3 KiB
数据库远程管理(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 完整域名。
新设备接入
在新设备上执行以下步骤:
# 1. 生成密钥对(如没有)
ssh-keygen -t ed25519 -C "设备标识备注"
# 2. 查看公钥内容
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub"
将公钥内容追加到服务器:
ssh root@47.98.203.17 "echo 'ssh-ed25519 AAAA...你的公钥内容...' >> ~/.ssh/authorized_keys"
之后 Navicat SSH 标签填写该设备的私钥路径即可。
命令行手动隧道(可选)
如需在命令行工具(如 mysql CLI)中使用,可手动建立隧道:
# 建立隧道(保持此终端运行,另开终端连接)
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