本地 mysql 仅在 Windows 上连接 ECONNREFUSED

Posted

技术标签:

【中文标题】本地 mysql 仅在 Windows 上连接 ECONNREFUSED【英文标题】:local mysql connect ECONNREFUSED only on windows 【发布时间】:2021-05-10 17:02:00 【问题描述】:

我已经尝试了一切,但只是在 Windows 上拒绝任何与数据库的连接,我使用了 xampp、manp、easyphpmysql 工作台,但每个人都有同样的问题。 linux中的xampp可以完美地使用相同的代码,但是在windows中并被拒绝,我也尝试关闭防火墙并授予权限,但这也没有帮助,我看到有mysql进程,但仍然没有。

我使用以下代码只是为了测试它是否正在连接。

var mysql = require('mysql');

var con = mysql.createConnection(
  host:"localhost",
  user:"root",
  port: 3306,
  password:""
);

con.connect(function(err) 
  if (err) throw err;
  console.log("Connected!");
);

还有出口

/mnt/d/Projetos/EstudoNode/teste.js:11
  if (err) throw err;
           ^

Error: connect ECONNREFUSED 127.0.0.1:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
    --------------------
    at Protocol._enqueue (/mnt/d/Projetos/EstudoNode/node_modules/mysql/lib/protocol/Protocol.js:144:48)
    at Protocol.handshake (/mnt/d/Projetos/EstudoNode/node_modules/mysql/lib/protocol/Protocol.js:51:23)
    at Connection.connect (/mnt/d/Projetos/EstudoNode/node_modules/mysql/lib/Connection.js:116:18)      
    at Object.<anonymous> (/mnt/d/Projetos/EstudoNode/teste.js:10:5)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47 
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 3306,
  fatal: true

我正在尝试使其与 xampp 一起工作,我尝试更改端口,但在这种情况下,Windows Defender 会阻止 myql 启动。

这两天我一直在尝试各种解决方案,但我不知道该怎么做

edit1:我刚刚注意到它在xampp中也出现了这个错误,我不知道它是否会影响连接。

edit2:我尝试用下面的php代码连接,连接成功,所以我认为是windows上的nodejs有问题。

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $conn = mysqli_connect($servername, $username, $password);
    if (!$conn) 
        die("Connection failed: " . mysqli_connect_error());
    
    echo "Connected successfully";
    mysqli_close($conn);
    ?>

【问题讨论】:

首先尝试将 t´ 与 mysql 客户端连接,如果这也可以正常工作,则必须检查配置和 wtat 授予用户 rt 的权限。您还可以尝试使用 127.0.0.0.1 insteqad f localhost 已经用 127.0.0.1 尝试过如何连接 mysql 客户端? 只需使用mysql -h 127.0.0.1 -u root -p Windows cmd 无法识别 mysql 命令 它在那里,你必须找到它的安装位置,比如C:\Program Files\MySQL Server xxx\bin。 chdir 进入该路径并使用连接参数 ***.com/questions/14805567/… 运行 mysql.exe 【参考方案1】:

问题不在于 xampp 或任何数据库。问题和不允许连接的 Windows WSL

【讨论】:

以上是关于本地 mysql 仅在 Windows 上连接 ECONNREFUSED的主要内容,如果未能解决你的问题,请参考以下文章

Winsock 连接失败并显示 WSAEFAULT |仅在 Windows 11 上出现错误

Windows获取远程Linux局域网内的mysql连接

Windows平台使用Navicat for MySQL通过SSH密钥认证连接远程MySQL数据库

windows远程连接MySQL失败

WebSocket 仅在本地 file:/// 页面上执行时有效

windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法