我尝试使用 Windows 中的 Navicat Premium 通过 SSH 连接到远程 MariaDB 服务器,但始终无法连接并出现此错误:
2013 - 在“读取初始通信包”时与 MySQL 服务器失去连接,系统错误:0
我已经阅读并遵循了互联网上的许多指南,所以我现在很迷茫,不知道还能做什么。这是我所做的:
在服务器端(远程主机装有 CentOS 6.6 和 mysql Ver 15.1 Distrib 5.5.44-MariaDB,对于 Linux(x86_64),使用 readline 5.1):
/etc/my.cnf.d/server.cnf
设置此参数:[mysqld] #skip-networking #tried with this bind-address = 0.0.0.0 #tried with this bind-address = 127.0.0.1 #tried with this bind-address = localhost
结果:没有成功,同样的错误,无法连接
/etc/hosts.allow
设置此参数:# tried with this #ALL:ALL # tried with this ALL:PARANOID # tried with this ALL:MY_IP_ADDR
结果:没有成功,同样的错误,无法连接
/etc/ssh/sshd_config
允许 TCP 转发的设置参数:AllowTcpForwarding 是
结果:没有成功,同样的错误,无法连接
服务器已启用 IPTABLES,但端口 3306 已打开:
#MySQL/MariaDB
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
Navicat 上的配置如下:
有人能帮我吗?我花了好几个小时却没成功
答案1
您是否尝试在应用程序的“常规”选项卡上将 127.0.0.1 作为主机名?
很难确切地说出该应用程序正在尝试做什么(远程/本地/动态隧道)
我必须做一些类似的事情才能访问我们使用的远程 Oracle 数据库...我可以访问 Linux 工作站或 cygwin。
我不太熟悉你使用的软件...但是当我必须从其他我使用 PuTTY 的机器。谷歌搜索(PuTTY 本地 ssh 隧道)将提供以下说明的结果: http://howto.ccs.neu.edu/howto/windows/ssh-port-tunneling-with-putty/
将本地端口设置为您想要的任何端口(为了清楚起见,我只会使用 3306),并将目的地设置为 yoursever:3306。然后使用您想要连接到 127.0.0.1:3306 的任何 SQL 客户端。
/etc/my.cnf
[mysqld]
bind_addess = 127.0.0.1
iptables -A INPUT -i lo -j ACCEPT
#should be the only firewall statement you need assuming ssh is open..