【问题标题】:MYSQL Database not connecting, Node.JS, NPM MYSQLMYSQL 数据库未连接,Node.JS,NPM MYSQL
【发布时间】:2017-06-21 02:38:41
【问题描述】:

我正在尝试使用 npm MYSQL 库 (https://www.npmjs.com/package/mysql) 连接到 MYSQL 数据库,但出现无法连接服务器的错误。当我进入服务器时,我可以看到数据库,并且我验证了我的凭据并且它们是有效的。我的应用程序位于我们的单独服务器上,IP 地址以 123.75 结尾,而数据库位于 123.74 上。我正在使用我在 Express 上设置的路由来调用数据库。我在下面列出了 Express 和 NPM MYSQL 代码(凭据已编辑),以及我收到的错误。

NPM MYSQL:

 const config = sql.createConnection( {
    host: '123.74:3306',
    user: 'root',
    pass: '****',
    database: '****'
});

快速路线:

app.use('/t',function(req,res){
      config.connect(function(err){
          if (err){
              res.send(err);
              return;
          }
          res.send('connected');
      });
      config.end();

  });

错误:

{"code":"ENOTFOUND","errno":"ENOTFOUND","syscall":"getaddrinfo","hostname":"123.74:3306","host":"123.74:3306","port":3306,"fatal":true}

更新:

我在库中发现了问题,并发布了解决方案。

【问题讨论】:

  • 该主机名看起来不像是一个有效的 IP,您是否没有正确复制到您的问题中,还是您的代码确实如此?
  • 我编辑后放在 SoF 上的 IP。我把它放在 xxx.xx.xxx.xx 形式中
  • 这肯定是因为mysql 库无法访问服务器。尝试单独指定端口,如下所示:host: "123.74", port: 3306。还可以尝试使用您指定的设置从mysql 命令行进行连接。

标签: mysql node.js express npm


【解决方案1】:

您必须更正您的配置对象,从主机中删除端口并将其添加为对象键。

const config = sql.createConnection( {
        host: '123.74',
        port: 3306,
        user: 'root',
        pass: '****',
        database: '****'
});

【讨论】:

  • 这对我来说很神奇,知道为什么我必须这样做吗?我正在使用风帆
  • 这就是图书馆的工作方式,他们有不同的领域来划分责任。如果您查看错误日志,您将看到该库将数字 3306 解释为正确的端口,但它不会将其从主机地址中删除。
【解决方案2】:

问题是我使用的 mysql 库。在查看了 GitHub 上提出的众多问题之后,似乎我的问题很常见,所以我决定切换到另一个名为“mysql2”的库,我提供了与以前相同的凭据,我的数据流出没有问题。我在下面的 NPM 上放了一个库的链接。

https://www.npmjs.com/package/mysql2

【讨论】:

    猜你喜欢
    • 2014-11-25
    • 2014-04-10
    • 2023-04-02
    • 2016-08-21
    • 2011-08-12
    • 2012-07-23
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    相关资源
    最近更新 更多