菜猿pro  

问题描述:

Navicat连接远程服务器Mysql报错:

ERROR 2013 (HY000): Lost connection to MySQL server during query

过程:

Navicat新建连接输入参数,连接测试输出成功!

但在连接时报错:

问题排查:

猜测是不是Navicat问题,所以尝试使用cmd终端连接:

MySql连接远程服务器命令

mysql -h[ip地址] -u[用户名] -p[密码]

发现终端下连接后报同样的错误。

解决:

Navicat通过ssh连接mysql

1、Navicat连接,现在【常规】面板中填写mysql服务参数ip、port、mysql用户名/密码

2、切换到【SSH】面板中填写服务器参数ip、port、服务器用户名/密码

总结:

通过建立SSH隧道连接MySQL,解决网络隔离无法直接访问数据库的问题。

本文使用的是直接使用Navicat通过ssh连接,还有一种方法是通过xshell端口转发到Navicat形式感兴趣的可以研究一下。

知识点延展:

SSH是什么?

SSH 安全外壳协议(Secure Shell Protocol / SSH)为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。

简单的说,SSH是一种网络协议,主要用于客户端与远程主机的安全链接和交互。

安全链接的过程是:
1.远程主机端收到客户端的登陆请求时先发送自己的公钥给客户端
2.客户端用拿到的公钥加密用户名和密码,然后发送给远程主机
3.远程主机用自己的密钥解密收到的用户名和密码,然后校验用户名和密码是否正确,如果正确则登陆成功。

posted on 2019-08-07 16:32  菜猿pro  阅读(14052)  评论(1编辑  收藏  举报