Windows环境下通过SSH堡垒机远程连接MySQL服务器求助
解决Windows下通过SSH堡垒机+ODBC连接远程MySQL的方案
一、建立正确的SSH隧道(核心区别于官方文档的配置)
由于堡垒机与MySQL服务器为两台独立机器,需配置本地端口转发,通过堡垒机中转流量到MySQL服务器。以下提供两种常用工具的配置方法:
方法1:使用Windows自带OpenSSH(Windows 10/11默认预装)
打开PowerShell,执行命令:
ssh -L 33060:XX.XX.XX.01:3306 堡垒机用户名@XX.XX.XX.02
参数说明:
33060:本地Windows机器上的空闲端口(可自定义,避免与本地MySQL默认3306端口冲突)XX.XX.XX.01:3306:目标MySQL服务器的IP与端口堡垒机用户名@XX.XX.XX.02:SSH堡垒机的登录用户名与IP
执行后输入堡垒机登录密码(密钥登录需提前配置密钥),保持该PowerShell窗口处于打开状态,隧道即建立完成。
方法2:使用PuTTY图形化工具
- 打开PuTTY,在Session页面输入堡垒机IP
XX.XX.XX.02,默认端口22 - 进入Connection > SSH > Tunnels:
- 在Source port填入本地空闲端口(如33060)
- 在Destination填入
XX.XX.XX.01:3306 - 勾选Local与Auto,点击Add,列表将显示
L33060 XX.XX.XX.01:3306
- 返回Session页面,可保存配置方便后续使用,点击Open登录堡垒机,保持窗口打开
二、配置ODBC数据源
- 打开WindowsODBC数据源管理器(需选择与ODBC驱动匹配的32/64位版本)
- 切换至用户DSN或系统DSN,点击添加,选择对应版本的MySQL ODBC驱动(如MySQL ODBC 8.0 Unicode Driver)
- 在驱动配置窗口填入以下信息:
- TCP/IP Server:
127.0.0.1(本地转发端口指向的地址) - Port:之前设置的本地端口(如33060)
- User:MySQL服务器的登录用户名
- Password:MySQL服务器的登录密码
- Database:需连接的目标数据库名称(可选,可后续在应用中指定)
- TCP/IP Server:
- 点击Test测试连接,验证通过后点击OK保存配置
三、常见问题排查
- 连接测试失败:先检查SSH隧道状态,在PowerShell执行
Test-NetConnection 127.0.0.1 -Port 33060,确认本地端口是否连通 - 堡垒机限制转发:检查堡垒机
sshd_config文件,确保开启AllowTcpForwarding yes - MySQL权限限制:确认MySQL用户允许从堡垒机IP访问,可执行权限语句:
GRANT ALL ON 目标数据库.* TO '用户名'@'堡垒机IP' IDENTIFIED BY '密码';,执行后刷新权限FLUSH PRIVILEGES; - 本地端口占用:更换一个未被使用的端口(如33061)重新配置隧道与ODBC
内容的提问来源于stack exchange,提问作者Naveenkumar Arumugam
相关产品推荐
相关产品推荐

