Mysql 错误:尝试使用正确的凭据连接到远程数据库时getaddrinfo ENOTFOUND

Mysql 错误:尝试使用正确的凭据连接到远程数据库时getaddrinfo ENOTFOUND,mysql,node.js,web-services,Mysql,Node.js,Web Services,我想连接到我的数据库。Im使用node.js服务器和mysql数据库。Localhost可以工作,但当我尝试连接到数据库时,会出现以下错误:getaddrinfo ENOTFOUND const pool = mysql.createPool({ connectionLimit: 10, password: "****", user: "***", host: "***", port: "3306"

我想连接到我的数据库。Im使用node.js服务器和mysql数据库。Localhost可以工作,但当我尝试连接到数据库时,会出现以下错误:getaddrinfo ENOTFOUND

const pool = mysql.createPool({
  connectionLimit: 10,
  password: "****",
  user: "***",
  host: "***",
  port: "3306",
  database: "***",
});

正如我所说的,使用localhsot设置它可以工作,但是当我用ionos凭据填写它时,它将无法工作

您在上面的评论中提到,您的数据库由ionos托管,并且您的代码正在从那里外部运行

不幸的是,IONOS似乎阻止了从外部源到其数据库产品的连接。Heroku绝对是一个外部来源。这一事实是:

无法从桌面计算机或任何其他非IONOS源访问您的IONOS MySQL数据库:

原则上,您只能通过安装在IONOS web空间上的应用程序访问MySQL数据库,例如使用您自己的WordPress安装。出于安全原因,其他访问路径已被阻止

他们完成此限制的方式可能是不发布其数据库的公共DNS记录,这就是为什么您的代码抱怨无法解析其地址


如果没有特殊安排,您对该供应商的要求是不可能的。如果这是一个绝对要求,您应该寻找另一个数据库主机。

这是否回答了您的问题?如果你能添加一些代码,那就太好了!您的数据库具体托管在哪里?您是否配置了相应的防火墙规则?@esqew我使用了ionosdatabase@ApoorvaChikara当然非常感谢。好的,谢谢你的回答!!现在我用World4You数据库试过了。这里我得到了一个“PROTOCOL\u SEQUENCE\u TIMEOUT”错误。我建议在实际选择数据库提供程序之前,先查看它们的文档。我从未听说过“World4You”,但也明确提到这是不可能的。好吧,但我该怎么办?是否有支持此问题的提供程序?有很多提供程序-您甚至可以在自己的服务器上运行自己的实例。就个人而言,我的所有数据库都是使用Microsoft的Azure SQL产品托管的。不幸的是,产品/服务建议请求与堆栈溢出无关。