{"id":10020681,"date":"2025-03-21T22:45:33","date_gmt":"2025-03-21T14:45:33","guid":{"rendered":"https:\/\/itmax.cn\/?p=10020681"},"modified":"2025-03-21T22:45:33","modified_gmt":"2025-03-21T14:45:33","slug":"%e8%bf%9e%e6%8e%a5mysql%ef%bc%9aerror-connect-econnrefused-13306-at-tcpconnectwrap","status":"publish","type":"post","link":"https:\/\/itmax.cn\/?p=10020681","title":{"rendered":"\u8fde\u63a5mysql\uff1aError: connect ECONNREFUSED ::1:3306 at TCPConnectWrap"},"content":{"rendered":"<h2>\u95ee\u9898\u63cf\u8ff0<\/h2>\n<ul>\n<li>\u7b14\u8005\u628a\u670d\u52a1\u5668\u4e0a\u7684node\uff0c\u4ece14\u5347\u7ea7\u523018<\/li>\n<li>\u518d\u6b21\u4f7f\u7528express\u7684\u8fde\u63a5\u6c60\u8fde\u63a5mysql\u7684\u65f6\u5019\uff08mysql\u7248\u672c\uff1a2.18.1\uff09<\/li>\n<li>\u51fa\u73b0\u8fde\u63a5\u4e0d\u4e0a\u7684\u62a5\u9519<\/li>\n<li>\u62a5\u9519\u4fe1\u606f\u5982\u4e0b\uff1a<\/li>\n<\/ul>\n<pre><code class=\"js\">Error: connect ECONNREFUSED ::1:3306\n    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16)\n    --------------------\n    at Protocol._enqueue (C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/mysql\/lib\/protocol\/Protocol.js:144:48)\n    at Protocol.handshake (C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/mysql\/lib\/protocol\/Protocol.js:51:23)\n    at PoolConnection.connect (C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/mysql\/lib\/Connection.js:116:18)\n    at Pool.getConnection (C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/mysql\/lib\/Pool.js:48:16)\n    at C:\/Users\/Administrator\/Desktop\/code\/exress\/router.js:41:8\n    at Layer.handle [as handle_request] (C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/express\/lib\/router\/layer.js:95:5)\n    at next (C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/express\/lib\/router\/route.js:149:13)\n    at Route.dispatch (C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/express\/lib\/router\/route.js:119:3)\n    at Layer.handle [as handle_request] (C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/express\/lib\/router\/layer.js:95:5)\n    at C:\/Users\/Administrator\/Desktop\/code\/exress\/node_modules\/express\/lib\/router\/index.js:284:15 {\n  errno: -4078,\n  code: 'ECONNREFUSED',\n  syscall: 'connect',\n  address: '::1',\n  port: 3306,\n  fatal: true\n}<\/code><\/pre>\n<h2>\u62a5\u9519\u539f\u56e0\u2014\u2014<strong>MySQL \u4f7f\u7528 IPv4 \u8fde\u63a5<\/strong><\/h2>\n<ul>\n<li>\u4e0a\u8ff0\u7684\u62a5\u9519<code>Error: connect ECONNREFUSED ::1:3306<\/code>\u7684<code>::1<\/code>\u662fIPV6\u7684\u5199\u6cd5<\/li>\n<li>\u5c31\u662f\u4f7f\u7528IPV6\u53bb\u94fe\u63a5\u9ed8\u8ba4mysql\u76843306\u7aef\u53e3<\/li>\n<li>\u4e0d\u8fc7MySQL \u4f7f\u7528 IPv4 \u8fde\u63a5<\/li>\n<li>\u5f53node\u5347\u7ea7\u523018\u7684\u65f6\u5019<\/li>\n<li>\u5c31\u4e0d\u652f\u6301localhost\u7684\u5199\u6cd5\u8fdb\u884c\u8fde\u63a5\u4e86<\/li>\n<li>node14\u7684\u65f6\u5019\uff0c\u8fd8\u53ef\u4ee5\u8fde\u5f97\u4e0a<\/li>\n<li>\u6240\u4ee5\u5f3a\u5236\u4f7f\u7528ipv4\u7684\u5199\u6cd5\u5373\u53ef<\/li>\n<\/ul>\n<h3>\u539f\u5148\u7684\u8fde\u63a5\u6c60\u5199\u6cd5<\/h3>\n<pre><code class=\"js\">\/\/ \u5f15\u5165mysql\u6570\u636e\u5e93\nvar mysql = require('mysql')\n\/\/ \u6570\u636e\u5e93\u8fde\u63a5\u6c60\u7684\u914d\u7f6e\nvar pool = mysql.createPool({\n  connectionLimit: 100,  \/\/ \u8fde\u63a5\u6c60\u7684\u5927\u5c0f\n  host: 'localhost', \/\/ \u4e3b\u673a\u540d\n  user: 'user',  \/\/ \u7528\u6237\u540d\n  password: 'password', \/\/ \u5bc6\u7801\n  database: 'database' \/\/ \u6570\u636e\u5e93\u540d\u79f0 \u5728\u6570\u636e\u5e93\u91cc\u9762\u5efa\u7acb\u4e86\u4e00\u4e2adatabase\u6570\u636e\u5e93\uff0c\u91cc\u9762\u6709\u5f88\u591a\u8868\u683c\n});\n\/\/ \u66b4\u9732\u8fde\u63a5\u6c60\nmodule.exports = pool<\/code><\/pre>\n<h3>\u6539\u6210IPv4\u8fde\u63a5<\/h3>\n<pre><code class=\"js\">var mysql = require('mysql')\nvar pool = mysql.createPool({\n  connectionLimit: 100,\n  host: '127.0.0.1',  \/\/ \u5f3a\u5236\u4f7f\u7528 IPv4 \u5730\u5740\u4e3b\u673a\u8fde\u63a5\n  user: 'user',\n  password: 'password',\n  database: 'database'\n});\nmodule.exports = pool<\/code><\/pre>\n<p>\u8fd9\u6837\u7684\u8bdd\uff0c\u95ee\u9898\u5c31\u89e3\u51b3\u4e86<\/p>\n<p><a href=\"https:\/\/segmentfault.com\/a\/1190000046306756\">https:\/\/segmentfault.com\/a\/1190000046306756<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u95ee\u9898\u63cf\u8ff0 \u7b14\u8005\u628a\u670d\u52a1\u5668\u4e0a\u7684node\uff0c\u4ece14\u5347\u7ea7\u523018 \u518d\u6b21\u4f7f\u7528express\u7684\u8fde\u63a5\u6c60\u8fde\u63a5mysql\u7684\u65f6\u5019\uff08my [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-10020681","post","type-post","status-publish","format-standard","hentry","category-share"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10020681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10020681"}],"version-history":[{"count":0,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10020681\/revisions"}],"wp:attachment":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10020681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10020681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10020681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}