启动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用户。
答案 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