我正在使用SequelizeJS连接并与我的本地主机(MAMP)上的数据库通信。但是,每当我尝试执行查询时,我都会收到此错误:ECONNREFUSED
。我仔细检查了MySQL的端口号和主机名,即3306和localhost。我几乎遵循他们网站上的指南。以下是我的一些代码:
var sequelize = new mysql('partythump', 'root', 'mysqlroot', {
host: 'localhost',
port: 3306,
timestamps: false
});
var parties = sequelize.define('parties', {
id: mysql.INTEGER,
party_name: mysql.STRING,
party_id: mysql.STRING,
created_on: mysql.DATE,
is_active: mysql.BOOLEAN,
party_code: mysql.STRING,
geo_location: mysql.STRING
});
在一个函数中,我有这个:
var party = parties.build({
id: null,
party_name: 'test',
party_id: '',
is_active: 1,
party_code: '',
geo_location: '',
created_on: new Date()
});
party
.save()
.on('success', function() {
console.log('Inserted new party into db');
})
.on('failure', function(error) {
console.log('Could not execute insert query');
console.log(error);
});
任何人都可以帮助我吗?
答案 0 :(得分:7)
所以,感谢答案,但我的同事最终找到了问题所在。它与MAMP中的配置有关。解决这个问题:
在MAMP中,在菜单栏中,转到文件>编辑模板> MySQL my.cnf
在第46行,注释掉:
MAMP_skip-networking_MAMP
现在应该工作!
答案 1 :(得分:1)
当您指定localhost
作为主机名时,MySQL客户端库通常会尝试通过Unix套接字(一种特殊类型的文件)进行连接。
这仅在客户端库和MySQL服务器进程查找同名的Unix套接字时才有效,并在服务器和客户端的配置文件中设置它。
对于开发工作,您不需要Unix套接字的速度,因此sdepold建议使用127.0.0.1应该可以帮助您。
然后,您可以稍后查看服务器和客户端安装的文档,并在您心情愉快时找到设置。
答案 2 :(得分:0)
您可以尝试使用主机127.0.0.1
吗?