MySQL错误:无法连接到MySQL服务器

您可能偶然发现了这个MySQL错误。 如果您以前已经看过此内容,那么很容易识别并修复它。 但是,如果您以前从未见过此错误,则需要花费一些时间来解决问题。 我正在列出解决此问题的步骤。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

此问题可能是由于以下原因引起的:

  • MySQL服务未运行
  • 端口3306未打开
  • IP表规则阻止传入请求

MySQL服务

您可以通过运行以下命令快速检查MySQL服务的当前状态:

/> sudo service mysql status
/> mysql stop/waiting

如果它显示为“停止/等待”,则只需重新启动服务并重新测试您的应用程序即可。

/> sudo service mysql start

MySQL端口和IP表规则

如果服务正在运行,而您仍然无法连接到远程数据库,则端口可能未打开或MySQL服务器正在侦听其他端口。 通常,MySQL服务器在3306端口上侦听。

/> netstat -nlp --inet

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      26417/mysqld
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      617/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1079/exim4
udp        0      0 172.26.196.17:123       0.0.0.0:*                           1274/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           1274/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           1274/ntpd
udp        0      0 0.0.0.0:161             0.0.0.0:*                           1155/snmpd

如果您注意到mysqld在该端口上进行监听,则问题可能出在其他地方。 下一步是确保IP表允许流量通过端口3306。

/> iptables -L

Chain services (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql

如果您得到上面的一行,则表明IP规则正确,否则您需要添加IP规则以允许通信。 我通常添加以下规则以允许流量。 这是非常通用的规则,它允许来自任何地方的流量。 您甚至可以根据需要限制来源。

#!/bin/sh

IPTABLES=${IPTABLES:-/sbin/iptables}
CHAIN=${1:-services}
$IPTABLES -A $CHAIN -j ACCEPT -p tcp --dport 3306

/etc/iptables.rules.services添加上述规则后,运行以下命令,并确保该规则已反映在IP表中。

/> /etc/iptables.rules

再次启动该应用程序,它不应遇到相同的问题。 如果确实抛出相同的异常,则问题必须在其他地方。 检查您的应用程序配置。

希望以上解决方案将帮助您解决问题。 如果您想出自己的解决方法,请在评论部分中分享。

翻译自: https://www.javacodegeeks.com/2014/06/mysql-error-cant-connect-to-mysql-server.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值