如何通过SSH tunnel隧道连接到MySQL
默认情况下,MySQL服务器仅在localhost上侦听,这意味着它只能由在同一主机上运行的应用程序访问。
但是,在某些情况下,您可能希望从远程位置连接到服务器。一种选择是将 MySQL服务器配置为允许远程连接,但这需要管理权限,并且可能会导致安全风险。
一种更安全的替代方法是创建从本地系统到服务器的SSH隧道。 SSH隧道是一种在客户端和服务器之间创建加密的SSH连接的方法,通过该连接可以中继服务端口。
在本指南中,我们将说明如何创建SSH隧道并从远程客户端连接到MySQL服务器。相同的说明适用于MariaDB。
先决条件
- SSH客户端。
- 通过SSH访问运行MySQL服务器的系统。
在Linux和macOS上创建SSH隧道
ssh
客户端已预安装在大多数基于Linux和Unix的系统上。
如果您使用Linux或macOS作为操作系统,则可以使用以下命令创建SSH隧道:
ssh -N -L 3336:127.0.0.1:3306 [USER]@[SERVER_IP]
使用的选项如下:
-N
-告诉SSH不要执行远程命令。-L 3336:127.0.0.1:3306
-创建本地端口转发。本地端口(3306
),目标IP(127.0.0.1
)和远程端口(3306
)用冒号(:
)分隔。[USER]@[SERVER_IP]
-远程SSH用户和服务器的IP地址。- 要在后台运行命令,请使用
-f
选项。 - 如果SSH服务器正在侦听端口上的其他端口大于22 (默认),请使用
-p [PORT_NUMBER]
选项指定端口。
运行命令后,系统会提示您输入SSH用户密码。输入后,您将登录到服务器,并建立SSH隧道。最好设置基于SSH密钥的身份验证,然后在不输入密码的情况下连接到服务器。
现在,您可以将本地计算机MySQL客户端指向127.0.0.1:3336
输入远程数据库登录凭据并访问MySQL服务器。
例如,要使用命令行mysql
客户端连接到MySQL服务器,您将发出:
mysql -u MYSQL_USER -p -h 127.0.0.1
其中MYSQL_USER
是具有访问数据库特权的远程MySQL用户。
出现提示时,输入MySQL用户密码。
要在运行ssh客户端的控制台中终止SSH隧道类型,请输入CTRL+C
。
在Windows上创建SSH隧道
Windows用户首先需要下载并安装SSH客户端程序。最受欢迎的Windows SSH客户端是PuTTY。您可以在此处下载PuTTY
执行以下步骤以使用PuTTY创建到MySQL服务器的SSH隧道:
启动PuTTY,然后在Host name (or IP address)
字段中输入服务器的IP地址
在Connection
菜单下,展开SSH
并选择Tunnels
。在Source Port
字段中输入3306
,在Destination
字段中输入127.0.0.1:3306
:
单击Add
按钮添加隧道。
返回到Session
页面以保存设置这样就无需再次输入它们。
在Saved Session
字段中输入会话名称,然后单击Save
按钮。
选择保存的会话,然后通过单击Open
按钮。
一个新窗口询问您的用户名和密码将显示出来。输入用户名和密码后,您将登录到服务器,并创建SSH隧道。
设置公钥身份验证将使您无需输入密码即可连接到服务器。
您现在可以使用本地MySQL客户端连接到远程数据库。
例如,如果您使用的是HeidiSQL,则在Hostname/IP
字段中输入127.0.0.1
,在User
和Password
字段中输入MySQL用户和密码:
结论
MySQL,最流行的开源数据库服务器,仅在本地主机上侦听传入的连接。创建SSH隧道可以使您从本地客户端安全地连接到远程MySQL服务器。
如果您有任何疑问,请在下面发表评论。
以上是 如何通过SSH tunnel隧道连接到MySQL 的全部内容, 来源链接: utcz.com/z/507408.html