gpt4 book ai didi

Azure 上的 MySql 引发连接超时

转载 作者:行者123 更新时间:2023-11-29 21:51:02 27 4
gpt4 key购买 nike

我在 Azure 上有 2 个虚拟机,位于同一虚拟网络中。

一台虚拟机运行一个 NodeJs 进程,负责 MySQL 操作。

其他虚拟机运行 MySQL 实例。我可以从其他 VM 和 NodeJs 进程很好地连接到它。

有时从池中获取连接时会失败并抛出有关连接超时的错误。

我的连接字符串使用虚拟网络内的本地 IP 地址来访问数据库,因此它应该具有超过 10 秒超时的延迟。当它工作时,速度很快,我的意思是非常快!但有时它会崩溃并随机重新开始工作。有人遇到过这个吗?

如果有帮助的话,这是一个基于 Ubuntu Server 15.10 的 MySQL 实例。

异常(exception):

{
"error": {
"name": "Error",
"status": 500,
"message": "connect ETIMEDOUT",
"errorno": "ETIMEDOUT",
"code": "ETIMEDOUT",
"syscall": "connect",
"fatal": true,
"stack": "Error: connect ETIMEDOUT
at PoolConnection.Connection._handleConnectTimeout (projectdir/node_modules/loopback-connector-mysql/node_modules/mysql/lib/Connection.js:375:13)
at Socket.g (events.js:180:16)
at Socket.EventEmitter.emit (events.js:92:17)
at Socket._onTimeout (net.js:327:8)
at Timer.unrefTimeout [as ontimeout] (timers.js:412:13)
--------------------
at Protocol._enqueue (projectdir/node_modules/loopback-connector-mysql/node_modules/mysql/lib/protocol/Protocol.js:135:48)
at Protocol.handshake (projectdir/node_modules/loopback-connector-mysql/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at PoolConnection.connect (projectdir/node_modules/loopback-connector-mysql/node_modules/mysql/lib/Connection.js:123:18)
at Pool.getConnection (projectdir/node_modules/loopback-connector-mysql/node_modules/mysql/lib/Pool.js:45:23)
at MySQL.executeSQL (projectdir/node_modules/loopback-connector-mysql/lib/mysql.js:200:12)
at projectdir/node_modules/loopback-connector-mysql/node_modules/loopback-connector/lib/sql.js:408:10
at projectdir/node_modules/loopback-datasource-juggler/lib/observer.js:175:9
at doNotify (projectdir/node_modules/loopback-datasource-juggler/lib/observer.js:93:49)
at MySQL.ObserverMixin._notifyBaseObservers (projectdir/node_modules/loopback-datasource-juggler/lib/observer.js:116:5)
at MySQL.ObserverMixin.notifyObserversOf (projectdir/node_modules/loopback-datasource-juggler/lib/observer.js:91:8)"
}
}

最佳答案

根据我的经验,有 2 种情况可能会引起您的问题。

连接数达到MySQL服务器的max_connection数,并且没有新的连接客户端可用的连接。这种情况,你可以检查一下你的代码,MySQL操作后是否释放了连接。

另一方面,当您遇到超时异常时,您可以登录Azure管理门户,在VM门户的监控页面中,检查指标是否达到VM的瓶颈,这也会出现您的问题。在这种情况下,您可以扩展 VM 以扩大 VM 硬件。

关于Azure 上的 MySql 引发连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com