无法连接到远程主机:尝试 telnet 到 MySQL 时连接超时?

无法连接到远程主机:尝试 telnet 到 MySQL 时连接超时?

当我尝试通过 telnet 连接到 mysql 服务器时出现以下错误:

telnet localhost 3306
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection timed out

我也尝试使用 127.0.0.1 进行 telnet,但收到相同的错误消息。但是一旦进入服务器,hostname我就可以连接。mysql -u username -p

以下是netstat的结果:

netstat -na | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     4540495  /var/run/mysqld/mysqld.sock

netstat -na | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN  

可能存在哪些问题?如果您需要更多详细信息,我可以毫无问题地提供。

多谢。

答案1

您能连接吗:

mysql -h127.0.0.1 -u username -p

如果没有,请检查你的服务器是否已启用“skip-networking”:

如果服务器以--skip-networking启动,它将根本不接受TCP / IP连接。源码

这表明 127.0.0.1 不起作用,但 localhost 可以。在 mysql 中,localhost 和 127.0.0.1 是不同的主机。

需要进一步检查的事项:

  • 您是否正在运行默认端口 (3306)?检查您的 my.cnf 或执行mysqladmin -h localhost -p variables | grep port

  • 如果您在 Linux 下运行并且启用了安全增强型 Linux (SELinux),请确保已禁用 mysqld 进程的 SELinux 保护。

答案2

我遇到了同样的问题,但我解决了。我使用 Mac pro 和 sequel Pro 作为 mysql 客户端,套接字 localhost 连接成功,但标准 tcp/ip 连接失败!
我使用 cmd 检查了正在运行的端口:

mysqladmin -h localhost -u root -p variables | grep port

这是我的结果状态:

wangxiaodeMacBook-Pro:~ wangxiao$ mysqladmin -h localhost -u root -p variables | grep port
Enter password: 
| innodb_support_xa                                      | ON                                                                                                                                                                                                                                                                                                                                               |
| large_files_support                                    | ON                                                                                                                                                                                                                                                                                                                                               |
| port                                                   | 3307                                                                                                                                                                                                                                                                                                                                             |
| report_host                                            |                                                                                                                                                                                                                                                                                                                                                  |
| report_password                                        |                                                                                                                                                                                                                                                                                                                                                  |
| report_port                                            | 3307                                                                                                                                                                                                                                                                                                                                             |
| report_user                                            |                       

它移植的是 3307 而不是默认的 3306,曾经安装了另一个 mysql 服务器。所以更改它并解决。感谢@DTest 的回答。

相关内容