提问者:小点点

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


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

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

正如我所说的-在localhsot设置下,它可以工作,但当我用ionos凭据填写时,它就不工作了


共1个答案

匿名用户

您在上面的注释中提到,您的数据库由IONOS托管,您的代码从那里外部运行。

不幸的是,IONOS似乎阻止了从外部源到其数据库产品的连接。Heroku绝对是一个外部来源。这一事实在他们的帮助站点上有明确的记录:

无法从台式计算机或任何其他非IONOS源访问IONOS MySQL数据库:

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

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

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