mysql 无法使用Sequelize(nodejs)连接到本地主机数据库

y1aodyip  于 2023-02-18  发布在  Mysql
关注(0)|答案(4)|浏览(186)

我正在使用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);
});

有人能帮我吗?

l3zydbqr

l3zydbqr1#

所以,谢谢你的回答,但我的同事最终发现了这个问题。它与MAMP中的一个配置有关。
在MAMP的菜单栏中,转到文件〉编辑模板〉MySQL my.cnf
在第46行,注解掉:

MAMP_skip-networking_MAMP

应该可以了!

ws51t4hk

ws51t4hk2#

当您指定localhost作为主机名时,MySQL客户端库通常尝试通过Unix套接字(一种特殊类型的文件)进行连接。
只有当客户端库和MySQL服务器进程在相同的名称下查找Unix套接字,并在服务器和客户端的配置文件中设置它时,这才起作用。
对于开发工作,您不需要Unix套接字的速度,所以sdepold建议您使用127.0.0.1。
然后,您可以在以后浏览服务器和客户机安装的文档,并在您有心情的时候找到要摆弄的设置。

cpjpxq1n

cpjpxq1n3#

你能试试主机127.0.0.1吗?

e1xvtsh3

e1xvtsh34#

调用new mysql时,应添加具有“socketPath”属性的参数“dialetOptions

相关问题