Navicat SSH隧道(MariaDB) - 访问被拒绝给用户@ localhost

时间:2017-07-12 00:08:09

标签: mysql database ssh mariadb navicat

我知道有一百万个这样的问题,答案最终是用户忘记使用正确的密码,或者不知道连接到本地主机'作为数据库服务器或傻事。这不是其中一个问题。

当我从终端SSH连接到我的服务器时,我能够正常连接。从那里,我可以跑:

mysql -h localhost -u MyUser -pMyPassword

我可以从终端进入数据库。

使用Navicat,我已经设置了SSH隧道。我之前已经完成了一千次,并确切知道它是如何工作的。

在SSH选项卡上,我输入了REMOTE主机名。端口22.用户名是我用于SSH的用户名,而不是数据库用户名。我使用了密码和公钥。两者都很好。

问题似乎是建立SSH隧道后与数据库的连接。

在常规标签上,我将主机名设置为' localhost'。用户名是MyUser,与终端中的mysql命令一起使用的用户名相同。密码被保存,并且是MyPassword,与终端中的mysql命令一起使用的密码相同。编码设置为UTF-8,默认值。

我已经对所有这些值进行了一次双重检查,它们完全符合终端的功能。

我得到的错误是:

  

用户访问被拒绝' MyUser@127.0.0.1' (使用密码:是)

从此消息中可以清楚地看到SSH隧道正常工作,但与数据库的连接却没有。同样,我的常规选项卡上的值与我在mysql终端命令(有效)中使用的值完全匹配,但Navicat无法连接。

我也尝试过使用127.0.0.1作为主机。这会产生完全相同的错误。设置“本地主机”的主机名对我来说很奇怪。使用127.0.0.1而不是localhost抛出错误,但我认为这只是在服务器的主机文件中设置的,基本上是相同的。

我已经尝试过使用压缩'已选中和未选中,但未选中是默认值。

我还检查了我的常规选项卡,反对在服务器上运行的webapp中的配置,它是相同的。我唯一能想到的是:

-MySQL没有在端口3306上运行(但如果此端口上没有服务器,我就不会期望访问被拒绝错误。)

-UTF-8默认编码不正确(尽管DB中的每个表都设置为utf8_unicode_ci)

由于用户名和密码正确无误,因此我可以更改这两件事。

我还阅读了一个指南,该指南说检查服务器的/ etc / ssh / sshd_config文件,并查看是否将AllowTcpForwarding设置为no。该值不存在于该文件中,并且我被告知默认值为yes,因此我没有添加该值。

值得一提的是,这是一个MariaDB数据库,我有连接设置在Navicat中使用MySQL。我过去使用MySQL设置成功连接到MariaDB数据库,所以我认为不应该导致任何问题。

0 个答案:

没有答案