无法使用Sequelize连接到MySQL

fre*_*und 3 javascript mysql node.js sequelize.js

我一直SequelizeConnectionRefusedError试图连接到我的服务器上的MySQL数据库.

登录凭据是正确的,端口是打开的,一切看起来都很好(并且在开发环境中就像一个魅力).

对于稀缺的背景信息感到抱歉,但我在这里傻眼了 - 我真的不知道是什么原因导致了这个问题.

这是我的输出 mysql --version

mysql  Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (x86_64) using readline 6.3
Run Code Online (Sandbox Code Playgroud)

这是我用来初始化Sequelize的代码.我想要它使用的表还不存在,但我很确定这个问题没有任何关系.我已尝试使用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();
Run Code Online (Sandbox Code Playgroud)

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

什么可能导致这个问题?

fre*_*und 9

我也尝试使用MySQL模块直接连接到数据库,但这给了我同样的错误.在寻找同样问题的解决方案,但与MySQL模块而不是Sequelize相关时,我发现了这一点:连接ECONNREFUSED - 节点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
    }
});
Run Code Online (Sandbox Code Playgroud)