我正在使用Loopback和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
答案 0 :(得分:0)
最可能的原因可能是某些其他服务正在使用相同端口,请更改端口。
我遇到了与nodemon类似的问题,因为我的路径变量中没有 system32文件夹。
答案 1 :(得分:0)
这似乎是 MySQL 和 Loopback 的一个已知问题,当 Loopback 首次启动时,它会导致连接在重负载下超时:
https://github.com/strongloop/loopback-connector-mysql/issues/210
一些可能的解决方案:
如果您在 VM 或容器上运行,增加 CPU 资源可能会解决问题。
在数据源配置中设置 connectTimeout
和 acquireTimeout
(根据需要调整值):
{
"mySQL":{
//...
"connectTimeout": 20000,
"acquireTimeout": 20000
}
(https://github.com/strongloop/loopback-connector-mysql/issues/210#issuecomment-258089303)
这是另一种选择:
<块引用>我们的解决方案是通过在数据源配置中启用lazyConnect从环回启动中删除初始数据库连接,然后在启动完成后单独调用数据源连接。我们得出了类似的结论,即环回启动期间 CPU 压力导致数据库连接失败。
(https://github.com/strongloop/loopback-connector-mysql/issues/210#issuecomment-758091028)