启动我的node.js应用程序时出现错误连接ECONNREFUSED 127.0.0.1:3306

时间:2019-02-24 23:02:15

标签: javascript mysql node.js sequelize.js

启动node.js应用程序时出现此错误:

SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306

我在做什么:

 - create a user:
CREATE USER 'main'@'localhost' IDENTIFIED BY 'myPass';

 - give this user all privileges
GRANT ALL PRIVILEGES ON *.* TO 'main'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

然后我尝试在生产环境中连接我的代码,这给了我一个错误:连接ECONNREFUSED 127.0.0.1:3306。

但是在我的本地主机环境中,它连接良好。当我尝试使用VPS上的命令行连接到数据库时,它也可以工作: mysql -umain -p

我无法连接代码。但是在我的本地主机上它连接。仔细检查我的登录名并通过.env中的DB用户。

4 个答案:

答案 0 :(得分:1)

尝试重新启动MySQL服务。

答案 1 :(得分:1)

我发现了问题! 在我的mysql配置文件(etc / my.cnf)中是bind-address = my VPS ip 因此,当我删除此行时,它将开始监听ips。

谢谢大家!

答案 2 :(得分:0)

即使您属于我的类别,我也只是忘了戴上我的本地服务器(XAMMP)。您可能要检查MySQL服务器是否处于活动状态。

答案 3 :(得分:0)

我遇到了同样的问题,并通过在我的续减速中添加“ socketPath”来解决了这个问题,

const sequelize = new Sequelize('db-name', 'user', 'password', {
  host: 'localhost',
  dialect: 'mysql',
  dialectOptions: {
    socketPath: 'your socket path',
    supportBigNumbers: true,
    bigNumberStrings: true
  },
});

通过输入/etc/mysql/mysqld.cnf查找套接字路径: 那么你就有了他们的套接字路径:

user        = mysql
# pid-file  = /var/run/mysqld/mysqld.pid
# socket    = /var/run/mysqld/mysqld.sock
# port      = 3306
# datadir   = /var/lib/mysql