【问题标题】:nodejs sequelize connect to a remote mySQL database always give ETIMEDOUTnodejs sequelize 连接到远程 mySQL 数据库总是给 ETIMEDOUT
【发布时间】:2021-09-14 17:38:51
【问题描述】:

关于将 sequelize 连接到远程 mySQL 数据库,我需要您的帮助

当我将主机属性设置为“localhost”时,sequelize 连接正常:

new Sequelize('billsmanager', 'root', '12345', {
        host: `localhost`,
        dialect: 'mysql',
        define: {
            timestamps: false
        },
        pool: {
            max: 25,
            min: 0,
            idle: 10000
        },
    })

然后我尝试将我的本地 IP 地址放在家里而不是 'localhost' 并且 ETIMEDOUT 来了

我尝试了它提供 ETIMEDOUT 的 freeinfinity 托管网站

我的办公室服务器它提供 ETIMEDOUT

即使我尝试了我兄弟的家庭服务器,它也给了我 ETIMEDOUT

甚至我家的网络也提供 ETIMEDOUT

这里有人建议在防火墙中为端口 3306 添加入站规则,但它不起作用

在 my.ini 中注释 bind-address 也不起作用

我正在使用 XAMPP

我真的不知道为什么会发生这种情况

你能帮帮我吗?

提前非常感谢,我真的需要这个工作

【问题讨论】:

  • 您是否尝试连接到与您的node 应用程序在同一台机器上本地存在的mysql 数据库 - 或者您是否尝试连接到公开可用的数据库,例如 AWS RDS 实例?如果您尝试连接到远程主机,请提供有关提供商的详细信息。例如,如果是 AWS,则需要正确配置安全组。
  • 我试图将 nodejs 连接到托管程序中的数据库并且我收到错误然后我说为什么我不尝试通过我的 ip 地址在本地连接所以我尝试了它并给出了同样的错误,我怀疑它与网络cz有关,当我通过localhost连接时它连接但是当我坑192.168.1.2(我的笔记本电脑本地IP地址)时它没有

标签: mysql node.js xampp sequelize.js


【解决方案1】:

我终于用非常愚蠢的解决方案解决了它

我将连接超时添加到 100 秒,它在 12 秒后工作并连接

我这样写初始化:

sequelizer: new Sequelize('billsmanager', 'root', '12345', {
        host: `192.168.1.2`,
        dialect: 'mysql',
        dialectOptions: {
            connectTimeout:100000
        },
        define: {
            timestamps: false
        },
        pool: {
            max: 25,
            min: 0,
            idle: 10000
        },
    }),

谢谢

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多