我试图通过SSH使用Navicat Premium从Windows连接到远程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上的configuration:
任何人都可以帮我一个忙吗? 我花了几个小时没有成功
你有没有尝试127.0.0.1作为你的应用程序的“常规”选项卡上的主机名?
很难确切地说明这个应用程序试图做什么(远程/本地/dynamic隧道)
我必须做类似的事情才能到达我们使用的远程Oracle数据库…我可以使用Linux工作站或者cygwin。
我不熟悉你使用的软件…但是当我必须从其他机器进入我们的数据库时,我使用PuTTY。 谷歌search(PuTTY本地SSH隧道)将提供结果的指示: http : //howto.ccs.neu.edu/howto/windows/ssh-port-tunneling-with-putty/
将本地端口设置为任何你想要的(为了清楚起见,我将使用3306)和目的地:3306。 然后使用任何你想连接到127.0.0.1:3306的SQL客户端。
[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..