无法使用Sequelize连接到MySQL

试图连接到我的服务器上的MySQL数据库时,我始终得到一个SequelizeConnectionRefusedError

login凭证是正确的,端口是开放的,一切似乎都很好(在开发环境中就像一个魅力一样)。

对不起,由于稀缺的背景信息,但我在这里傻眼了 – 我真的不知道可能是什么原因造成这个问题。

这是我的输出从mysql --version

 mysql Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (x86_64) using readline 6.3 

这是我用来初始化Sequelize的代码。 我想要它使用的表尚不存在,但我相当肯定,这个问题没有任何关系。 我已经尝试用root用户login,但没有骰子 – 我仍然得到相同的错误。

 var sequelize = new Sequelize("database", username, password, { host: "localhost", dialect: "mysql", port: 3306, define: { paranoid: true } }); var Model = sequelize.define("Model", { md5: {type: Sequelize.STRING(128)}, ip: {type: Sequelize.STRING(256)}, url: {type: Sequelize.STRING(1024)} }); sequelize.sync(); 

这在Ubuntu 14.04上运行,其中节点在Passenger后面运行(尽pipe如果直接运行带有节点的应用程序也会出现错误)。 我在同一台服务器上运行nginx和PHP,在另一个PHP应用程序连接到数据库,如果这是相关的。

什么可能导致这个问题?

我试图用MySQL模块直接连接到数据库,但是这给了我同样的错误。 在寻找相同问题的解决scheme时,却涉及到MySQL模块而不是Sequelize,我发现这个: 连接ECONNREFUSED – 节点js,sql 。

我需要的是提供一个socketPath键的mysql模块。 以下是我如何更改我的代码,使其工作:

 var sequelize = new Sequelize("database", username, password, { host: "localhost", dialect: "mysql", logging: function () {}, pool: { max: 5, min: 0, idle: 10000 }, dialectOptions: { socketPath: "/var/run/mysqld/mysqld.sock" }, define: { paranoid: true } });