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

2.3 KiB
Raw Blame History

数据库远程管理Navicat SSH 隧道)

RDS 白名单仅开放服务器 47.98.203.17,任何设备需通过 SSH 隧道访问数据库,无需开放公网 IP安全可控。


原理

本机 Navicat  ──SSH加密隧道──▶  47.98.203.17  ──内网──▶  RDS MySQL

数据库与 RDS 实例对应关系

数据库 RDS 主机
agent_dbagent_db_tempgame_fieldyoulehudong rm-bp1btyuwq77591x0jpo.mysql.rds.aliyuncs.com
game_dbgrade_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.1localhost,会连接到服务器本机而非 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