解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题

阅读时长 3 分钟读完

当使用Node.js编写应用程序连接MySQL数据库时,有时会遇到"connect ECONNREFUSED 127.0.0.1:3306"错误。这个错误通常表示无法连接到MySQL服务器,可能是因为服务未运行或端口未打开。

以下是解决此问题的一些方法:

检查MySQL服务器是否正在运行

请确保MySQL服务器正在运行。可以在终端中运行以下命令检查:

如果结果显示MySQL正在运行,则表示服务器已经启动。如果没有,请运行以下命令启动MySQL服务:

确认MySQL端口是否开放

默认情况下,MySQL使用3306端口进行通信。请确认该端口是否已被打开。您可以运行以下命令检查:

该命令将允许TCP连接到3306端口。

检查连接参数

请确保在应用程序中使用正确的连接参数。这包括主机名、用户名、密码和端口。例如,以下是连接MySQL的示例代码:

-- -------------------- ---- -------
----- ----- - -----------------

----- ---------- - ------------------------
  ----- ------------
  ----- -------
  --------- -----------
  ----- -----
  --------- ------------
---

------------------------ -- -
  -- ----- ----- ----
  --------------------------
---

请注意,主机名应该是localhost或127.0.0.1。如果您使用的是其他主机名,请确保在连接参数中使用正确的主机名。

确认MySQL是否允许远程连接

如果您正在尝试从远程计算机连接到MySQL服务器,则需要确认MySQL是否允许远程连接。要检查这一点,请打开MySQL配置文件(通常在/etc/mysql/mysql.conf.d/mysqld.cnf)并搜索bind-address。如果bind-address设置为127.0.0.1,则MySQL只允许本地连接。您可以将其更改为0.0.0.0以允许所有IP地址连接:

检查防火墙设置

如果您使用的是Linux操作系统,请确保防火墙不会阻止MySQL流量。您可以使用以下命令列出当前的防火墙规则:

如果MySQL被列为“拒绝”状态,则需要添加一个规则以允许MySQL流量。例如,以下命令将允许TCP连接到3306端口:

结论

当遇到"connect ECONNREFUSED 127.0.0.1:3306"错误时,首先要检查MySQL服务器是否正在运行,并确保连接参数正确。如果问题仍然存在,请确保MySQL端口已打开,MySQL允许远程连接,并且防火墙不会阻止MySQL流量。通过遵循以上步骤,您应该能够成功连接到MySQL服务器并解决这个问题。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/1348

纠错
反馈