纯ssh工具无法连接数据库?

华为云部署了一个redis服务,22、6379端口均已暴露,使用专门数据库连接软件可以正常连接,但是纯ssh工具无法连接数据库

想问一下,数据库连接必须用数据库连接工具吗?市面上普通ssh连接工具能否做到直接与数据库连接而不连接服务器?

阅读 2.5k
3 个回答

此 SSH 非彼 SSH。

MySql / Redis 之类的那个 SSH 连接时指用“SSH 隧道”(SSH Tunnel),通俗的讲就是端口转发。

并不是真的用 SSH 访问的 MySql / Redis。


你要想用终端来执行同样的操作的话,其实是分为两步:

# 建立 SSH 隧道,变量是啥含义应该不用解释吧?
ssh -fNTL <LOCAL_PORT>:<REMOTE_REDIS_ADDR>:<REMOTE_REDIS_PORT> <REMOTE_SSH_USERNAME>@<REMOTE_SSH_ADDR>
# 正常访问,注意此时访问用的是本地地址和端口
redis-cli -h 127.0.0.1 -p <LOCAL_PORT>

SSH 在这里起到的仅仅是一个代理的作用,实质通信还是 MySql / Redis 本身的那套通信协议。


P.S. 我猜你是这么用的?

ssh -p <REMOTE_REDIS_PORT> <REMOTE_SSH_USERNAME>@<REMOTE_REDIS_ADDR>

那当然不对了,redis-server 人家又不认识 SSH 协议……😂

需要工具, Redis Desktop Manager、DBeaver 这些图形化工具可以试试

一般来说,数据库连接需要使用专门的数据库连接工具或者编程语言的相关库来实现。这是因为数据库连接涉及到特定的协议和命令,与普通的SSH连接方式不同。SSH主要用于远程登录到服务器,执行命令以及文件传输,而不是直接与数据库进行交互。

在你的例子中,Redis 服务运行在 6379 端口上。要连接到 Redis,你需要使用专门的 Redis 客户端工具,例如 redis-cli,或者使用编程语言的相关库,如 Python 的 redis-py 或 Java 的 Jedis 等。

市面上的SSH工具通常无法直接与数据库建立连接,因为它们不支持数据库协议。但你可以使用SSH工具登录到服务器后,在服务器上运行相应的数据库客户端工具与数据库进行交互。如果你想在本地直接连接到远程数据库,可以考虑使用 SSH 隧道(SSH tunneling)技术,将远程数据库端口映射到本地端口,然后使用本地的数据库客户端进行连接。

为了与数据库建立连接并进行操作,你需要使用专门的数据库连接工具或相关编程语言库。普通的SSH工具通常无法直接实现这一目的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏