如何获得有关MySQL连接获得ECONNREFUSED的原因的更多信息?

时间:2017-04-20 09:17:37

标签: mysql node.js

我试图使用promise-mysql(节点模块)连接到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 }

我不知道为什么会这样。如何获取有关拒绝连接的原因的更多信息?

使用&#34;更多信息&#34;我的意思是:

  • 这是因为凭据无效吗?
  • 主机无法访问?
  • 主机是否可以访问但MySQL服务器已关闭?
  • 我们是否达到了MySQL连接限制?
  • 我的电脑里有侏儒试图让我发疯吗?

2 个答案:

答案 0 :(得分:1)

  1. 这是因为凭据无效吗?不,这会导致access denied错误消息。

  2. 我们是否达到了MySQL连接限制?不,这会导致too many connections错误消息。

  3. 主机无法访问?主机是否可以访问但MySQL服务器已关闭?是的,这两个中的任何一个都可能导致此错误消息。错误消息表示客户端甚至无法访问服务器(此错误由客户端生成,前两个错误消息由MySQL服务器生成)。

  4. 正如can't connect to MySQL上的MySQL文档所说:

      

    错误(2003)无法连接到服务器上的MySQL服务器&#39; (10061)表示网络连接已被拒绝。您应检查是否有MySQL服务器正在运行,是否已启用网络连接,以及您指定的网络端口是否是服务器上配置的网络端口。

    不幸的是,没有办法根据错误信息告诉哪些错误,你需要手动调查。

答案 1 :(得分:0)

我认为主机可以访问,但MySQL服务器已关闭。

检查您的MySQL服务器主机和端口是否正确,并检查是否能够在本地访问,例如终端中的MySQL。