我的一个 MySQL 群集服务器上反复出现了这个错误,实际上,在许多具有相同配置的国家/地区,该群集中的任何随机 MySQL 服务器上总是会发生此错误。
我有这个可以 ping 的“dbX Node”:
$ ping 192.0.2.4
PING 192.0.2.4 (192.0.2.4) 56(84) bytes of data.
64 bytes from 192.0.2.4: icmp_seq=1 ttl=61 time=1.92 ms
64 bytes from 192.0.2.4: icmp_seq=2 ttl=61 time=2.46 ms
我可以 Telnet TCP 端口 22:
telnet 192.0.2.4 22
Trying 192.0.2.4 ...
Connected to 192.0.2.4.
Escape character is '^]'.
并立即关闭:
Connection closed by foreign host.
显然,SSH 本身不起作用:
debug1: Connection established.
debug1: identity file /home/user/.ssh/identity type -1
debug3: Not a RSA1 key file /home/user/.ssh/id_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug2: key_type_from_name: unknown key type '-----END'
debug3: key_read: missing keytype
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: identity file /home/user/.ssh/id_dsa type -1
ssh_exchange_identification: Connection closed by remote host
我还可以 telnet 到 MySQL 端口:
# telnet db5 3306
Trying 192.0.2.4...
Connected to db5 (192.0.2.4).
Escape character is '^]'.
但无法连接:
# mysql -h db5 -uroot
该服务器是运行 RHEL 5.5 的 ProLiant DL360p Gen8
当我使用 iLO 连接并重新启动 SSH 守护程序时,我没有任何控制台提示,只有角落里的一个灰色小东西......
我需要不断重新启动面临此问题的服务器。
我需要帮助来解决这个问题。我已经尝试了所有方法。你遇到过类似的情况吗?
答案1
对于 ssh,看起来您正在使用 putty 密钥,除非将其导出为 openssh 格式,否则 ssh 不能使用 putty 密钥。看起来该文件已被手动编辑,如果可能的话,请从备份中恢复私钥,或者尝试重新生成您使用的密钥或创建一个新密钥并比较两者以确保您使用的密钥的格式没有改变。
至于 telnet 立即结束,这是可以预料的,因为 ssh 正在寻找 ssh 连接而不是 telnet 连接。
一旦您解决了关键问题,您就应该能够通过 ssh 进入该框。
至于 mysql 登录,通常 root 的默认登录仅限于 127.0.0.1 和本地主机。因此,除非您允许某些主机 (yourhost.domain) 或 % (顺便说一下 % 是个坏主意),否则您将无法连接,除非您使用 ssh 隧道以便本地连接。另一件事是您当前的命令mysql -h db5 -uroot
正在尝试在没有密码的情况下连接到 root。尝试改为mysql -h db5 -u root -p
提示您输入密码。
答案2
格鲁泽,
我有点这么认为。
检查您的配置文件,确保您可以从所连接的网络访问该设备。
确保这些服务器及其所连接的网络上可以 ping 您。如果您在网络中采用单向路由,您的访问尝试将失败。一些网络管理员会阻止 ICMP Ping 请求,并且防火墙/访问列表规则可能会阻止您访问您的设备,除非您与它们位于同一子网中。
较新的 Linux 服务器安装 iptables / ipforwarding / ipchains 默认会阻止所有内容。您必须手动打开所需的每个端口或套接字。有些安装脚本会处理此问题。有些会失败,您必须使用手动 Linux 命令打开它们。
双刃剑...被应用程序配置/本地机器或您自己的网络团队阻止。
希望这能有所帮助。干杯...