SequelizeConnectionRefusedError:连接ECONNREFUSED 127.0.0.1:3306

问题描述 投票:0回答:8

我使用 Sequelize 作为我的 Node js 应用程序和 Mysql 数据库的 ORM, 在遵循一些教程之后,我添加了此代码以将 mysql 连接到节点,但是在录制 npm start 后,我收到此错误: 无法连接到数据库:{ SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306

 const Sequelize = require('sequelize');

 // Option 1: Passing parameters separately
 const sequelize = new Sequelize('Education', 'root','', {
 host: '127.0.0.1',
 dialect: 'mysql'
 } );

  //test db 
 sequelize
.authenticate()
.then(() => {
  console.log('Connection has been established successfully.');
})
 .catch(err => {
 console.error('Unable to connect to the database:', err);
});
mysql node.js express sequelize.js
8个回答
5
投票

问题已解决,我在 phpMyadmin 中使用端口:3307 而不是 3306


5
投票

修复 Node.js 使用:

看起来当前版本的sequelize (7) 只适用于Node.js 版本

^12.22.0
^14.17.0
^16.0.0
www.sequelize.org
说其他一些版本也可能有效。

使用NVM安装并切换到16.0.0版本:

如果您还没有节点版本管理器,您可以安装它

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

然后使用

nvm i 16.0.0
安装版本 16,然后告诉您的应用程序使用
nvm use 16.0.0
使用它。


4
投票

在方言选项中添加

socketPath

示例代码片段:

// Option 1: Passing parameters separately
const sequelize = new Sequelize('Education', 'root', '', {
  host: '127.0.0.1',
  dialect: 'mysql',
  dialectOptions: {
    socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock'
  }
});

1
投票

只需重新启动mysql服务器即可。

Linux 和 Mac:

重启mysql服务

窗户:

使用 Windows+R 键盘打开 运行 窗口。 其次,输入 services.msc 并按 Enter: 找到 mysql 并重新启动服务。


1
投票

解决方案只是启动您的 Xampp Apache 和 MySQL 服务。


0
投票

如果您在 Windows 上运行 XAMMP 服务器,请首先使用 MySQL 启动 apache 服务器

您收到此错误可能是因为您的服务器未运行。

检查您的服务器并在必要时重新启动。


0
投票

就我而言,我使用的是不同的节点版本(因为我使用 nvm 安装了主要节点版本),请检查您是否安装了其他节点版本。


-1
投票

我已删除端口选项,问题已解决。

const sequelize = new Sequelize('dbname', 'dbuser', 'pass', {
    dialect: 'mysql',
    host: "127.0.0.1",
    operatorAlias:false,
    logging:false,
    pool: {
        max: 5,
        idle: 30000,
        acquire: 60000,
    },
    
})
© www.soinside.com 2019 - 2024. All rights reserved.