无法使用 Sequelize 连接到 MySQL

Can't connect to MySQL with Sequelize

当我尝试连接到我服务器上的 MySQL 数据库时,我总是收到 SequelizeConnectionRefusedError

登录凭据正确,端口打开,一切似乎都很好(并且在开发环境中工作得很好)。

抱歉,背景信息很少,但我在这里傻眼了——我真的不知道是什么导致了这个问题。

这是我 mysql --version

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

这是我用来初始化 Sequelize 的代码。我想让它使用的 table 还不存在,但我很确定这与这个问题没有任何关系。我也尝试过使用 root 用户登录,但没有成功 - 我仍然遇到同样的错误。

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();

这是 运行ning 在 Ubuntu 14.04 上,其中节点 运行 在 Passenger 后面(尽管如果我 运行 应用程序直接将节点作为出色地)。我在同一台服务器上 运行ning nginx 和 PHP,另一个 PHP 应用程序正在连接到数据库,如果有任何相关性的话。

是什么导致了这个问题?

我也尝试使用 MySQL 模块直接连接到数据库,但是这给了我同样的错误。在寻找相同问题的解决方案时,但与 MySQL 模块相关而不是 Sequelize,我发现了这个:connect ECONNREFUSED - node js , sql

我需要的是为 mysql 模块提供 socketPath 密钥。以下是我如何更改代码以使其工作:

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
    }
});