5

刚接触数据库,不知道从哪里开始排除故障 -

我目前正在使用 HeidiSQL 连接到托管在 Amazon Web Service - EC2 上的外部 MySQL 数据库服务器。

我可以使用带有设置的 HeidiSQL 访问数据库:MySQL(SSH 隧道)主机名/IP:127.0.0.1 用户:(用户)密码:(pw)端口 3306

在 SSH 隧道选项卡中:plink.exe 位置设置为 putty.exe sshhost + 端口:(我的主机 ip)端口 22 私钥文件:(已设置)本地端口:3307

使用此配置,我能够登录到我的数据库。我的问题是当我尝试使用我自己的腻子命令使用端口转发来执行此操作时:

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

回到 HeidiSQL,我把我的设置放到:MYSL (TCP/IP) 主机名:localhost 用户:(用户)密码(pw)端口 3307

并尝试连接。我收到以下错误:SL ERROR (2013): Lost connection to MySQL server at 'reading initial communication packet',系统错误:0

根据我的阅读,这意味着我的 ssh 隧道正在工作,但还有其他问题。我现在不知道为什么这不起作用。我没有正确设置其他东西吗?给自己做防火墙?我的最终目标是使用相同的端口转发思想连接另一个应用程序以使用 ODBC 或 JDBC 与数据库进行通信。是否有日志可以检查某处?

4

3 回答 3

1

你必须设置

AllowTcpForwarding yes
PermitTunnel yes

在 /etc/ssh/sshd_config

于 2018-06-08T15:20:57.773 回答
0

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

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

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

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

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

此外,如果远程 mysql 服务器的用户表(mysql 数据库)仅限于某些主机,这将不起作用。除非您发现服务器如何识别自己(计算机名称)并将他添加到用户表中,否则您只需使用“%”通配符。

于 2014-09-22T22:57:49.077 回答
0

请按照以下步骤解决我在连接到 Live 服务器时遇到的问题:

  1. 找到您的 IP(谷歌 - 我的 ip 是什么)。
  2. 转到 Live Server 的 C-Panel。
  3. 转到 C-Panel 中的远程 MySQL。
  4. 添加您从第 1 步获得的 IP 地址并保存。
  5. 现在尝试通过 Heidi SQL 进行连接。

请让我知道它是否有帮助。

于 2018-06-25T09:07:49.530 回答