【问题标题】:Unhandled rejection SequelizeConnectionError: connect ENOENT未处理的拒绝 SequelizeConnectionError:连接 ENOENT
【发布时间】:2016-03-27 07:40:44
【问题描述】:

我被困在一个点上。我正在尝试使用命令“npm start”启动/connect,但无法在服务器上启动 npm。

我收到此错误:

Unhandled rejection SequelizeConnectionError: connect ENOENT
    at Handshake._callback (/home/ec2-user/webapps/vactivity/node/vactivity/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:63:20)
    at Handshake.Sequence.end (/home/ec2-user/webapps/vactivity/node/vactivity/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
    at Protocol.handleNetworkError (/home/ec2-user/webapps/vactivity/node/vactivity/node_modules/mysql/lib/protocol/Protocol.js:358:14)
    at Connection._handleNetworkError (/home/ec2-user/webapps/vactivity/node/vactivity/node_modules/mysql/lib/Connection.js:382:18)
    at Socket.emit (events.js:95:17)
    at net.js:441:14
    at process._tickCallback (node.js:442:13)

除此之外,我的网站在 nodejs 上工作并在服务器上配置了 nginx 服务器。

当我尝试设置 apache 以添加 wordpress 博客网站时,一切都开始了。由于 nginx 已经在端口 80 上工作。我试图在另一个端口上设置 apache,以便一切正常,并最终出现上述错误。现在我的网站根本没有启动。

编辑: 我的网站正在使用 nodejs 运行。我需要一个 wordpress 博客网站来运行,所以我检查了我的服务器上是否有 apache 的范围。 我发现 apache 和 nginx 服务已经在运行,mysql 也在运行。

  • nginx 是运行数据库管理工具“adminer”必不可少的
  • 由于 nginx 和 apache 在相同的端口上运行,我尝试将 apache 设置在另一个端口上,而不是默认端口。
  • 之后我重新启动了 apache,停止了 mysql,停止了 nginx,也停止了节点
  • 我使用pkill node命令停止节点服务。
  • 然后重新启动一切,但出现上述错误。
  • 我尝试了很多东西,最后重置了所有东西。
  • 从那时起,我就被这个错误困住了。

谁能帮忙?

【问题讨论】:

  • 您的数据库正在运行吗? Sequelize 好像连接不上mysql
  • 我已经验证mysql服务器正在运行。我还应该做什么?
  • 你为 apache 使用什么端口号?
  • 实际上 Apache 还没有运行。默认情况下它正在侦听端口 80。目前,我打开了 Nginx 服务器,默认情况下它也应该在 80 上运行。无论我做什么,错误似乎永远不会消失。而且我还没有找到关于连接 ENOENT 错误的单一解决方案。

标签: node.js wordpress apache nginx


【解决方案1】:

我终于发现问题并解决了。

Connect ENOENT表示系统无法连接到mysql,因为它的路径不正确。

正如Connect MySQL with Sequelize 的批准答案中所述

使用上述代码更新您的 models/index.js 文件。 要找到您的 mysql 套接字路径,请转到此处的文件 /etc/mysql/my.cnf(此路径可能取决于您的服务器)。就我而言,它是/etc/my.cnf。在这里您将找到套接字路径。现在将此路径粘贴到上面的代码中并执行npm start

问题已解决。 :)

【讨论】: