MySQL 常见的node-mysql错误:连接被拒绝(connect ECONNREFUSED),并提供几种解决方法

MySQL 常见的node-mysql错误:连接被拒绝(connect ECONNREFUSED),并提供几种解决方法

在本文中,我们将介绍MySQL中常见的node-mysql错误:连接被拒绝(connect ECONNREFUSED),并提供几种解决方法。

阅读更多:MySQL 教程

问题描述

当使用node-mysql连接MySQL数据库时,会出现以下错误信息:

Error: connect ECONNREFUSED
    at errnoException (net.js:901:11)
    at Object.afterConnect [as oncomplete] (net.js:892:19)
    --------------------
    at Protocol._enqueue (D:\nodejs\node_modules\mysql\lib\protocol\Protocol.js:144:48)
    at Protocol.handshake (D:\nodejs\node_modules\mysql\lib\protocol\Protocol.js:51:23)
    at Connection.connect (D:\nodejs\node_modules\mysql\lib\Connection.js:116:18)
    at Object.<anonymous> (D:\nodejs\test.js:4:12)
    at Module._compile (module.js:641:30)
    at Object.Module._extensions..js (module.js:652:10)
    at Module.load (module.js:560:32)
    at tryModuleLoad (module.js:503:12)
    at Function.Module._load (module.js:495:3)
Mysql

原因分析

这个错误出现的原因是连接MySQL数据库时被拒绝。这可能是因为使用了错误的主机名、端口号、用户名或密码,或者MySQL服务器没有启动。

解决方法

检查配置项

检查配置项是否正确,包括主机名、端口号、用户名和密码。可以使用以下代码进行测试:

var mysql = require('mysql');

var connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: 'password',
});

connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }

  console.log('connected as id ' + connection.threadId);
});

connection.end();
Mysql

检查MySQL服务器是否启动

检查MySQL服务器是否已经启动。如果未启动,则需要先启动MySQL服务器。可以使用以下命令启动MySQL服务器:

sudo service mysql start
Mysql

确认MySQL服务器绑定的地址

如果MySQL服务器没有绑定在localhost上,则需要指定正确的IP地址进行连接。当然也可以在my.cnf中将bind-address设置为127.0.0.1即可。

确认防火墙设置

在Linux系统中,防火墙可能会阻止MySQL服务器接收传入的连接。可以使用以下命令开放3306端口:

sudo ufw allow mysql
Mysql

在防火墙允许的情况下,MySQL服务器应该能够接受传入的连接。

总结

连接被拒绝是node-mysql中常见的错误之一,通常是由于错误的配置项、未启动MySQL服务器、服务器绑定地址错误或防火墙设置不正确造成的。以上是几种解决方法,希望可以帮助到大家。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册