参考
经过几个星期n次失败后,终于找到解决Navicat连接虚拟机的MySQL的方法(皇天不负有心人)。
方法有如下几种(我用的是方法):

方法一:

  1. vi服务器端的/etc/ssh/sshd_config
  2. 把PasswordAuthentication设成yes
  3. 重启ssh服务systemctl restart sshd

网上的一种方法,然而这个问题依然没有解决。(应该是我自己的问题)

方法二:

  1. vi服务器端的/etc/ssh/sshd_config
  2. 找到#PermitRootLogin no将其修改为PermitRootLogin yes

方法三:

  1. 查看sshd是否正确在运行 netstat -anp | grep sshd
  2. 如果没有运行使用 service sshd restart 重启服务

方法四:

  1. 客户端使用 ssh -v root@192.168.0.120 查看登陆信息
  2. 提示“Permission denied, please try again.”
  3. 查看防火墙
    #/etc/init.d/iptables status
    如果22端口被限制则无法登陆。
    放开端口22
    #/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT

我的问题是通过方法二解决的,具体操作如下:

首先,打开xshell,连接虚拟机,

接着,使用sudovim命令对sshd_config进行修改,

连不是虚拟机的mysql 本机连接虚拟机mysql_虚拟机MySQL

找到#PermitRootLogin no将其修改为PermitRootLogin yes

连不是虚拟机的mysql 本机连接虚拟机mysql_虚拟机MySQL_02


保存并退出(如果不放心可以重启ssh服务,命令systemctl restart sshd )接着打开Navicat,连接虚拟机的MySQL

连不是虚拟机的mysql 本机连接虚拟机mysql_虚拟机MySQL_03


连不是虚拟机的mysql 本机连接虚拟机mysql_虚拟机MySQL_04


连不是虚拟机的mysql 本机连接虚拟机mysql_虚拟机MySQL_05


点击连接测试,可以看到连接成功(终于成功了,看到这一幕真的让人激动)

连不是虚拟机的mysql 本机连接虚拟机mysql_虚拟机MySQL_06


连不是虚拟机的mysql 本机连接虚拟机mysql_连不是虚拟机的mysql_07

这样就完成了数据库连接。

补充一下:
不能只填常规SSH,否则会出现如下错误:

1.只填常规不填SSH :

连不是虚拟机的mysql 本机连接虚拟机mysql_Navicat连接_08

2.只填SSH不填常规 :

连不是虚拟机的mysql 本机连接虚拟机mysql_Navicat连接_09

个人微信公众号推荐,专为各位IT好友分享资源(已分享上百G资源,涵盖了 微信小程序、Java、Python、人工智能等)