MySQL ODBC连接器能否通过SSH连接远程MySQL服务器?
核心结论
MySQL ODBC连接器原生未集成SSH隧道能力,没有提供类似MySQL Workbench的「Standard TCP/IP over SSH」连接选项,无法直接在ODBC配置页填写SSH参数直连服务器。要满足安全规则要求、实现Excel连接目标数据库,通过本地SSH端口转发打通链路是目前唯一稳定可行的方案,配置完成后使用体验和直连完全一致。
具体配置步骤
以下两种隧道实现方式二选一即可,和你现有C:\user\keyfile.pem密钥完全兼容:
方案1:Windows自带OpenSSH(无需额外装软件,推荐)
Win10 1809及以上、Win11系统默认自带OpenSSH客户端,不需要转换密钥格式,操作最简单:
- 按Win+R输入
cmd打开命令提示符,执行以下命令建立隧道:
ssh -i C:\user\keyfile.pem -N -L 3307:127.0.0.1:3306 你的SSH登录用户名@my.server.com
- 命令参数说明:
-N表示只做端口转发不打开远程shell,-L 3307:127.0.0.1:3306表示把本地3307端口的流量,通过SSH隧道转发到服务器本地的3306端口(即MySQL服务默认端口) - 首次连接会提示确认主机指纹,输入
yes回车即可,命令执行后不要关闭cmd窗口,隧道就会保持运行。如果需要开机自动连,可以把这个命令存成.bat脚本放到系统启动文件夹。
方案2:PuTTY工具链(适合习惯用PuTTY管理SSH连接的场景)
- 打开PuTTYgen,导入你现有的
C:\user\keyfile.pem密钥,保存为PuTTY支持的.ppk格式私钥,比如存为C:\user\keyfile.ppk - 可以直接用PuTTY图形界面配置:在Tunnels(隧道)页添加本地转发规则,源端口填
3307,目标填127.0.0.1:3306,选择「Local」模式后添加规则,再在Auth页选择刚才保存的ppk私钥,填入SSH服务器地址my.server.com和SSH用户名,发起连接后保持PuTTY窗口运行即可 - 也可以用
plink.exe做静默后台转发,命令格式如下:
plink.exe -i C:\user\keyfile.ppk -N -L 3307:127.0.0.1:3306 你的SSH登录用户名@my.server.com
ODBC与Excel配置
隧道打通后,配置逻辑和普通直连MySQL完全一致:
- 打开MySQL ODBC配置面板,连接类型选标准TCP/IP,服务器地址填
127.0.0.1,端口填刚才设置的本地转发端口3307 - 填入MySQL数据库本身的账号、密码,选择要连接的目标库,测试连接通过后保存数据源
- 打开Excel,在数据导入功能里选择对应的ODBC数据源即可正常访问数据库,所有流量会自动走SSH隧道,符合服务器安全访问规则。
注意事项:本地转发端口建议避开3306,防止和本地可能安装的MySQL服务端口冲突;隧道程序必须保持运行,关闭后ODBC连接会自动断开。
内容的提问来源于stack exchange,提问作者jake_asks_short_questions
相关产品推荐
相关产品推荐

