当试图通过telnet连接到mysql服务器时,我收到以下错误:
telnet localhost 3306 Trying ::1... Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection timed out
我尝试telnet与127.0.0.1, 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
什么可能是可能的问题? 如果您需要更多的细节,我可以提供它没有任何问题。
非常感谢。
你可以连接:
mysql -h127.0.0.1 -u username -p
如果没有,请检查您的服务器是否启动了“skip-networking”启用:
如果服务器是使用–skip-networking启动的,则根本不会接受TCP / IP连接。 SRC
这表明127.0.0.1将不起作用,但localhost会。 在mysql localhost和127.0.0.1是不同的主机。
更多的事情要检查:
你是否运行默认端口(3306)? 检查你的my.cnf或者做mysqladmin -h localhost -p variables | grep port mysqladmin -h localhost -p variables | grep port
如果您正在Linux下运行并且已启用安全增强型Linux(SELinux),请确保您已禁用SELinux进程的mysqld保护。
我得到同样的问题,我解决了。 我用Mac pro&sequel Pro作为mysql客户端,socket 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服务器。 所以改变它并解决。 tks @DTest的答案。