HeidiSQL连接MySQL服务器 - 连接丢失...在读取初始服务器时。

5

如果您不懂如何开始排除问题,我可以帮助您连接数据库。

目前我使用HeidiSQL连接到由亚马逊Web服 - EC2托管的外部Mysql数据库服务器。

使用以下设置,我可以通过HeidiSQL访问数据库:

MySQL (SSH隧道) 主机名/IP:127.0.0.1 用户:(用户名) 密码:(密码) 端口3306

在SSH隧道选项卡中:

plink.exe位置设为putty.exe sshhost + port:(我的主机IP)端口22 私钥文件:(已设置) 本地端口:3307

使用此配置,我可以成功登录数据库。但当我使用自己的putty命令进行端口转发时出现问题:

在Putty中:

我设置SSH>tunnels——源端口:3307,目标(我的主机IP):3306 本地和自动。 我使用我的密码和主机IP进行连接。

回到HeidiSQL,我将设置更改为:

MYSL(TCP/IP) 主机名:localhost 用户:(用户名) 密码:(密码) 端口3307

然后尝试连接,但是出现以下错误:

SL ERROR(2013):在“读取初始通信数据包”时与MySQL服务器的连接丢失,系统错误:0

据我所知,这意味着我的SSH隧道正常工作,但其他东西出了问题。 我不知道哪里出了问题,是我没有正确设置其他内容?还是我的防火墙有问题?我的最终目标是使用相同的端口转发思想将另一个应用程序连接到数据库并使用ODBC或JDBC进行通信。 有日志可以查看吗?


在EC2服务器上:在/etc/ssh/sshd_config中添加了以下行:AllowTcpForwarding yes这将更改我的错误消息为root@hostip denied。其中root是我在HeidiSQL中作为数据库用户输入的值- root。无论是否使用密码,都会拒绝我的访问。我需要启用哪些其他可能的设置? - user1639926
3个回答

1

你必须设置

AllowTcpForwarding yes
PermitTunnel yes

在/etc/ssh/sshd_config中。

0

看起来你正在尝试做这个: http://realprogrammers.com/how_to/set_up_an_ssh_tunnel_with_putty.html 它应该可以工作。我假设ssh服务器和mysql服务器在远程机器上运行。

在Putty中:我设置了SSH>隧道-源端口:3307,目标(我的主机IP):3306本地和自动。我使用我的密码和主机IP连接

应该是:设置SSH>隧道-源端口:3307,目标127.0.0.1:3306本地和自动。

heidisql:MYSL(TCP/IP)主机名:localhost用户:(用户)密码(pw)端口3307

请注意,如果您的本地机器上有一个MySQL服务,在您尝试监听的端口(3307)上运行,即使本地服务已关闭,您也会收到2013错误!在这种情况下,请使用任何未使用的任意端口。

此外,如果远程mysql服务器将用户表(mysql数据库)限制为某些主机,则此方法将无法使用。除非您找出服务器如何识别自己(计算机名称)并将其添加到用户表中,或者您可以简单地使用“%”通配符。

0

按照以下步骤解决连接到实时服务器的问题:

  1. 查找您的IP地址(Google - what is my ip)。
  2. 进入您的实时服务器的C-Panel。
  3. 在C-Panel中转到远程MySQL。
  4. 添加从第1步获取的IP地址并保存。
  5. 现在尝试通过Heidi SQL连接。

请告诉我是否有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接