我尝试使用 promise-mysql
( Node 模块)连接到 MySQL 实例,但失败并显示 ECONNREFUSED
。这是整个错误:
{ Error: connect ECONNREFUSED 172.18.0.6:3306
at Object.exports._errnoException (util.js:1018:11)
at exports._exceptionWithHostPort (util.js:1041:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
--------------------
at Protocol._enqueue (/usr/src/app/node_modules/mysql/lib/protocol/Protocol.js:141:48)
at Protocol.handshake (/usr/src/app/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at Connection.connect (/usr/src/app/node_modules/mysql/lib/Connection.js:130:18)
at connect (/usr/src/app/node_modules/promise-mysql/lib/connection.js:18:33)
at /usr/src/app/node_modules/promise-mysql/lib/connection.js:52:9
at Promise._execute (/usr/src/app/node_modules/bluebird/js/release/debuggability.js:300:9)
at Promise._resolveFromExecutor (/usr/src/app/node_modules/bluebird/js/release/promise.js:483:18)
at new Promise (/usr/src/app/node_modules/bluebird/js/release/promise.js:79:10)
at new connection (/usr/src/app/node_modules/promise-mysql/lib/connection.js:51:12)
at Object.exports.createConnection (/usr/src/app/node_modules/promise-mysql/index.js:6:12)
at Context.<anonymous> (/usr/src/app/test/default-parameters.test.js:9:10)
at callFn (/usr/src/app/node_modules/mocha/lib/runnable.js:345:21)
at Hook.Runnable.run (/usr/src/app/node_modules/mocha/lib/runnable.js:337:7)
at next (/usr/src/app/node_modules/mocha/lib/runner.js:309:10)
at Immediate.<anonymous> (/usr/src/app/node_modules/mocha/lib/runner.js:339:5)
at runCallback (timers.js:666:20)
at tryOnImmediate (timers.js:639:5)
at processImmediate [as _immediateCallback] (timers.js:611:5)
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '172.18.0.6',
port: 3306,
fatal: true }
我不知道为什么会发生这种情况。如何获取有关连接被拒绝原因的更多信息?
“更多信息”是指:
- 这是因为凭据无效吗?
- 主机是否无法访问?
- 主机是否可访问,但 MySQL 服务器已关闭?
- 我们是否达到了 MySQL 连接限制?
- 我的电脑里有侏儒试图让我生气吗?
最佳答案
这是因为凭据无效吗?不,这会导致 access denied错误消息。
我们是否达到了 MySQL 连接限制?不,这会导致 too many connections错误消息。
主机是否无法访问?主机是否可访问,但 MySQL 服务器已关闭?是的,两者中的任何一个都可能导致此错误消息。该错误消息意味着客户端甚至无法到达服务器(此错误是由客户端生成的,前两个错误消息是由 MySQL 服务器生成的)。
作为 MySQL 文档 can't connect to MySQL说:
The error (2003) Can't connect to MySQL server on 'server' (10061) indicates that the network connection has been refused. You should check that there is a MySQL server running, that it has network connections enabled, and that the network port you specified is the one configured on the server.
不幸的是,无法根据错误消息判断哪一个导致了错误,您需要手动调查。
关于mysql - 如何获取有关 MySQL 连接为何出现 ECONNREFUSED 的更多信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43515272/