问题描述
当我启动 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;
然后我尝试通过我的生产代码进行连接,它给了我一个错误:connect ECONNREFUSED 127.0.0.1:3306。
但在我的本地主机环境中,它连接良好。
当我尝试在 VPS 上使用命令行连接到数据库时,它也可以工作: mysql -umain -p
我无法与代码连接。 但是在我的本地主机上它连接。 仔细检查了我的登录信息并通过 .env 中的 DB 用户。
1楼
Leandro Rocha
3
2019-02-24 23:13:24
尝试重新启动 MySQL 服务。
2楼
Nastro
1
已采纳
2019-02-24 23:15:13
我发现了一个问题!
在我的 mysql 配置文件(etc/my.cnf)中, bind-address = my VPS ip
所以,当我删除这一行时,它开始监听 al ips。
谢谢大家!
3楼
Adebowale Adebusuyi
0
2020-08-03 12:21:17
以防万一你属于我的类别,我只是忘了把我的本地服务器 (XAMMP) 放在上面。 您可能想要检查您的 MySQL 服务器是否处于活动状态。
4楼
Noga-z
0
2020-10-09 11:55:04
我遇到了同样的问题,并通过在我的 sequelize 减速中添加“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