【问题标题】:errorError: getaddrinfo ENOTFOUND - mysql错误错误:getaddrinfo ENOTFOUND - mysql
【发布时间】:2014-10-20 17:15:58
【问题描述】:

我正在使用 Node.js 在 c9.io 上运行服务器并尝试连接到 Mysql 我想我得到了这个错误:

错误:getaddrinfo ENOTFOUND

因为与数据库的连接错误。

我正在使用这个:

var connection = mysql.createConnection({
    host: "REMOTE_ADDR",
    user: "MYUSERNAME", // this is replaced by my username
    database: "c9",
    port: 3306
});

知道有什么问题吗?

谢谢!

【问题讨论】:

    标签: json node.js


    【解决方案1】:

    一小时后,我不知道为什么,发现了问题。

    在我的情况下,我替换了

    host: 'localhost'
    

    通过

    host: '127.0.0.1'
    

    【讨论】:

      【解决方案2】:

      我知道这个问题已经有一段时间了,但我今天大部分时间都在尝试解决这个问题。检查内容:

      在你的 nodejs 源中:

      • 除非在您的 db VM 上,否则请尝试不使用“port”选项,MySQL 是 在除 3306 之外的端口上侦听。我指定了此选项,但有 连接问题,直到我删除它。而3306已经是 无论如何,该选项的默认值。
      • 在主机“选项”中尝试使用实际主机 IP。我使用的是实际域名,而且 node-mysql 通常会抛出 当我使用IP时,完全相同的“errorError:getaddrinfo ENOTFOUND” 地址,没有更多错误。另外,我在打开时没有收到此错误 AWS 中的 Ubuntu 实例。一旦我切换到 Ubuntu 虚拟机 Azure,我遇到了问题。
      • 将“调试”连接选项设置为 true,这将为您提供连接期间发生的详细信息

      在您的数据库 VM/Box/Instance 上:

      • 确保 MySQL 正在侦听正确的端口
      • 如果您在尝试使用池建立并发连接时看到错误,请检查您的 max_connections 和 max_user_connections 是否未从 my.conf 中的默认设置更改
      • 监控“显示进程列表;”在 MySQL 中查看是否有任何问题

      【讨论】:

      • 修复了我的问题,在本地机器上运行时必须删除端口。
      • 我在没有“端口”选项和“本地主机”的情况下使用,但仍然出现相同的错误!有什么想法吗?
      【解决方案3】:

      此代码对我有用。

      var mysql = require('mysql');
      
      var con = mysql.createConnection({
          host: '127.0.0.1',
          port: '3306',
          user: 'yourUsername',
          password: '**********'
      });
      
      con.connect(function(err){
          if(err) throw err;
          console.log('connected!');
      });
      

      主机和端口名称在你的 mysql 服务器中找到它们。 代替 '127.0.0.1' 你可以使用 'localhost'

      【讨论】:

      • 不鼓励使用纯代码的答案。请单击edit 并添加一些词来总结您的代码如何解决问题,或者解释您的答案与之前的答案/答案有何不同。 From Review
      【解决方案4】:

      我遇到了这个问题。我确实修复了它,您必须更改连接字符串的配置,就像您在本地机器上运行时一样尝试

      主机:'localhost' 或主机:'127.0.0.1'

      ...并设置您的用户名,如果您希望它在服务器上发布您的代码,然后根据服务器给主机,如果在 docker 容器中给它命名 host:'db'

      【讨论】:

        【解决方案5】:

        我几乎花了两个小时来了解mysql数据库的问题所在。我正在使用 Windows cmd。 我尝试了多种方法,例如

        1. npm install mysql2
        2. 更改localhost to 127.0.0.1
        3. 刷新节点

        所以为了解决这个问题

        [Error: getaddrinfo ENOTFOUND 127.0.0.1:3306]
        

        我打开 XAMPP 并启动 MySQL 数据库,然后手动检查凭据,对我来说工作正常。

        var mysql = require('mysql');
        
        var connection = mysql.createConnection({
          host    : 'localhost',
          user    : 'test',
          password: 'test123',
        }); 
        

        【讨论】:

          猜你喜欢
          • 2017-10-16
          • 2018-03-03
          • 2017-12-30
          • 2018-05-24
          • 2016-04-20
          • 2018-01-31
          • 2021-07-18
          • 1970-01-01
          • 2017-01-28
          相关资源
          最近更新 更多