繁体   English   中英

无法使用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的代码。 我想要它使用的表还不存在,但我很确定这个问题没有任何关系。 我已尝试使用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();

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

什么可能导致这个问题?

我也尝试使用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
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM