如何通过SSH安全登录MySQL数据库
通过SSH登录MySQL的核心方法是建立SSH隧道,将本地端口与远程MySQL服务端口绑定,从而实现加密、安全的数据库连接。 具体操作中,用户需先确保拥有远程服务器的SSH访问权限及MySQL账户,然后通过命令行工具(如OpenSSH)创建隧道,最后使用本地MySQL客户端连接转发的端口,这一过程不仅有效防止数据在传输过程中被窃取或篡改,还特别适用于需要跨公网访问内网数据库的场景,以下是详细步骤与注意事项:
-
创建SSH隧道
在本地终端执行以下命令(示例):
ssh -L 本地端口:localhost:远程MySQL端口 用户名@远程服务器IP -N
将本地3307端口绑定到远程服务器的3306端口:
ssh -L 3307:localhost:3306 user@192.168.1.100 -N
参数说明:
-L:指定本地端口转发;-N:表示不执行远程命令,仅用于端口转发;- 需替换
用户名、远程服务器IP及端口为实际信息。
-
连接本地转发的端口
隧道建立后,在另一终端或MySQL客户端中输入:mysql -h 127.0.0.1 -P 本地端口 -u MySQL用户名 -p
例为例:
mysql -h 127.0.0.1 -P 3307 -u db_user -p
注意:此处
-h需设为0.0.1(本地回环地址),而非远程服务器IP。 -
关键注意事项
- 权限配置:确保远程MySQL账户允许从
localhost连接(因隧道模拟为本地访问),必要时修改MySQL的user表或通过GRANT语句授权。 - 安全增强:建议使用SSH密钥对替代密码登录,并禁用MySQL的远程root访问。
- 隧道维护:SSH隧道需保持运行状态,关闭终端会导致连接中断,可通过
-f参数后台运行,或借助autossh等工具保持稳定。
- 权限配置:确保远程MySQL账户允许从
替代方案:若需图形化操作,可使用HeidiSQL、DBeaver等工具,在其连接设置中直接配置SSH隧道参数,无需手动执行命令行。
通过上述方法,SSH隧道为MySQL连接提供了企业级的安全保障,尤其适合云服务器、跨网络数据库管理等场景,实践中,建议结合防火墙规则与MySQL权限最小化原则,进一步提升系统安全性。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/16016.html发布于:2026-09-10





