errorError:getaddrinfo ENOTFOUND – mysql

我使用node.js在c9.io上运行服务器并尝试连接到Mysql我想我得到这个错误“errorError:getaddrinfo ENOTFOUND”,因为连接到数据库是错误的。

我正在使用这个:

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

任何想法有什么不对?

谢谢!

我知道这已经有一段时间了,但是我花了很多时间来解决这个问题。 要检查什么:

在你的nodejs源代码中:

  • 尝试没有“端口”选项,除非你的数据库虚拟机,MySQL正在监听3306端口。我有这个选项指定,但有连接问题,直到我删除它。 而3306已经是选项的默认值了。
  • 在主机'选项'中用实际的主机IP来尝试。 我正在使用一个实际的域名,通常node-mysql会抛出相同的“errorError:getaddrinfo ENOTFOUND”当我使用IP地址时,没有更多的错误。 另外,在AWS的Ubuntu实例中,我没有得到这个错误。 一旦我切换到Azure中的Ubuntu虚拟机,我得到了问题。
  • 将“debugging”连接选项设置为true,这将给你一个连接过程中发生的事情的详细跟踪

在你的数据库虚拟机/盒子/实例上:

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

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

在我的情况下,我换了

 host: 'localhost' 

通过

 host: '127.0.0.1'