又一个“在‘读取初始通信数据包’时失去与 mysql 服务器的连接,系统错误:0”问题

问题描述 投票:0回答:3

这似乎是重复的帖子,但我检查了相关帖子中发布的所有解决方案,但没有一个对我有用。所以请允许我更准确地陈述问题。

我有一台服务器,安装了MySQL。我有一个用户 X,密码为 P。

如果我连接到服务器(ssh 或其他东西)并尝试在本地运行 MySQL (

mysql --user=X --password==P
),它会完美登录,并且我可以访问所有内容:

    mysql> show grants;
    ...
    +------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'X'@'%' IDENTIFIED BY |
    |PASSWORD 'somehash' WITH GRANT OPTION                 |
    +------------------------------------------------------+

现在,如果我转到配置文件:(

sudo vim /etc/mysql/my.cnf
)我会看到以下内容:

bind-address = 0.0.0.0
port = 3306

然后我转到主机允许文件(

sudo vim /etc/hosts.allow
)我看到:

mysqld: ALL

然后我进入主机允许文件(

sudo vim /etc/hosts.deny
):该文件是空的(除了一些注释)。

但是,当我尝试连接 MySQL Workbench 时,我遇到了问题。 我是这样做的。我去添加一个新连接,添加 URL、用户名、通行证和端口,然后单击“测试连接”,然后收到该问题的标题消息。我尝试使用随机(不存在)的用户通行证组合,但仍然得到相同的响应。

顺便说一句,我也尝试注释掉绑定地址。此外,该服务器通常还可以访问 PostgreSQL 等其他服务。

mysql linux
3个回答
1
投票

这不是服务器防火墙问题的解决方案,而是一种解决方法,因为您可以通过 ssh 访问数据库服务器:

您可以尝试从mysql服务器ssh远程端口转发到本地机器,然后将mysql客户端连接到本地端口。每当我位于防火墙后面时,我都会使用此方法。额外的好处是,通过此连接传输的数据也非常安全。

例如,如果您使用 ssh 进入远程计算机

ssh [email protected] -i ~/.ssh/hal.key

然后你可以像这样设置端口转发:

ssh -L 54321:127.0.0.1:3306 [email protected] -i ~/.ssh/hal.key -f -N -M -S ~/.ssh/tunnel_54321_remote_machine_mysql

然后就可以像本地连接数据库一样连接数据库了(以命令行mysql客户端为例):

mysql -h 127.0.0.1 -P 54321 -u my_user -p my_database

然后系统会提示您输入密码。

关闭隧道:

ssh -S ~/.ssh/tunnel_54321_remote_machine_mysql [email protected] -i ~/.ssh/hal.key

我第一次从 postgres 文档了解到这个方法。


0
投票

这很可能是防火墙问题。

首先进行调试的最简单方法是尝试在本地和远程通过端口 3306 telnet 到服务器。 如果连接正确,MySQL 将以明文形式发送版本字符串,您可以在 telnet 中看到该版本字符串。

如果您没有收到该字符串,则防火墙之类的东西可能会阻止连接。


0
投票

游戏很晚了,但我在 MySql 15.1 中遇到了同样的问题,并记录了

/var/log/secure
文件,我意识到每次登录都会产生这样的错误:

sshd[2598444]: refused local port forward: originator  port 18204, target 127.0.0.1 port 3306

此时我意识到在我的

/etc/ssh/sshd_config
文件中,AllowTcpForwarding 和 GatewayPorts 值被设置为 no 并进行了注释,因此我将它们设置为:

AllowTcpForwarding yes
GatewayPorts yes

那时,我就跑了:

sudo systemctl restart sshd

MySQL 连接工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.