【问题标题】:SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306SequelizeConnectionRefusedError:连接 ECONNREFUSED 127.0.0.1:3306
【发布时间】:2019-12-22 16:02:35
【问题描述】:

我使用 Sequelize 作为我的节点 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服务器吗?
  • 如果将 '127.0.0.1' 替换为 'localhost' 是否会出现同样的错误?
  • 问题解决了我在 phpMyadmin 中使用端口:3307 而不是 3306,

标签: mysql node.js express sequelize.js


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在方言选项中添加socketPath

    示例代码sn-p:

    // 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'
      }
    });
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        只需重启 mysql 服务器即可。

        Linux 和 Mac:

        服务mysql重启

        窗户:

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

        【讨论】:

          【解决方案5】:

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

          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,
              },
              
          })
          

          【讨论】:

          • 删除端口选项只能在您的设置中起作用。正如作者后来提到的,在他们的设置中,他们的端口与默认端口不同,因此是连接错误。