连接失败:Error: connect ETIMEDOUT



我正在使用MySql的环回。当我运行

时,我随机得到以下错误
nodemon .

node .
Web server listening at: http://0.0.0.0:3000
Browse your REST API at http://0.0.0.0:3000/explorer
Connection fails: Error: connect ETIMEDOUT
It will be retried for the next request.
events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: connect ETIMEDOUT
    at PoolConnection.Connection._handleConnectTimeout
  1. 我该如何解决这个问题?在环回侧配置或MySQL配置吗?注意:MySQL使用的是MAMP。
  2. 正常启动需要很长时间。什么我应该怎么做才能快速重启?

这似乎是MySQL和环回的一个已知问题,当环回第一次启动时,会导致连接超时:

https://github.com/strongloop/loopback-connector-mysql/issues/210

几个可能的解决方案:

  • 如果您在VM或容器上运行,增加CPU资源可能会解决这个问题。

  • 在数据源配置中设置connectTimeoutacquireTimeout(根据需要调整值):

    {
    "mySQL":{
        //...
        "connectTimeout": 20000,
        "acquireTimeout": 20000
    }
    

    (https://github.com/strongloop/loopback-connector-mysql/issues/210 # issuecomment - 258089303)

  • 这是另一个选项:

    我们的解决方案是通过在数据源配置中启用lazyConnect来从环回引导中删除初始数据库连接,然后在引导完成后单独调用数据源连接。我们得出了类似的结论,即环回引导期间的CPU压力导致db连接失败。

    (https://github.com/strongloop/loopback-connector-mysql/issues/210 # issuecomment - 758091028)

最可能的原因是其他服务正在使用相同的端口,请更改端口

我有类似的问题与nodemon没有节点,因为没有system32文件夹在我的路径变量

最新更新