首页 > 解决方案 > 在 Windows 10 上的 NodeJs 中无法连接到 mysql

问题描述

我曾尝试在 Windows 10 上将 NodeJS 连接到 mysql,但一直失败。以下是代码,来自https://www.w3schools.com/nodejs/nodejs_mysql_create_db.asp

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  con.query("CREATE DATABASE mydb", function (err, result) {
    if (err) throw err;
    console.log("Database created");
  });
});

以下是我运行代码时的错误消息。

  if(err) throw err;
          ^

Error: connect ECONNREFUSED 127.0.0.1:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1134:16)
    --------------------
    at Protocol._enqueue (C:\Users\tete6\NodeJS\node_modules\mysql\lib\protocol\Protocol.js:144:48)
    at Protocol.handshake (C:\Users\tete6\NodeJS\node_modules\mysql\lib\protocol\Protocol.js:51:23)
    at Connection.connect (C:\Users\tete6\NodeJS\node_modules\mysql\lib\Connection.js:116:18)
    at Object.<anonymous> (C:\Users\tete6\NodeJS\demo_db_connection.js:9:5)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11 {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 3306,
  fatal: true
}

为了解决这个错误,我尝试...

  1. 更改“localhost”->“127.0.0.1”,但失败。
  2. 添加“端口:3306”,但失败。
  3. 检查端口是否可以连接,我发现它从来都不是我的端口,防火墙问题。我的 xampp 的 mysql 运行良好。
  4. 甚至 mongoDB 模块也会触发相同的错误消息。

我收集了一些信息,这个econnrefused错误消息主要是 NodeJS 的问题,而不是 sql 模块的问题。

有没有人给我看这银光?

标签: mysqlnode.jseconnrefused

解决方案


你启动了你的 XAMPP 服务器了吗?

连接 ECONNREFUSED 127.0.0.1:3306 - 当您没有启动 XAMPP 服务器时,出现此错误。

首先,您应该将mysql正确安装到Windows 10中

并查看此视频链接如何使用节点 js 连接到 mysql


推荐阅读