mysql - 错误:尝试使用正确凭据连接到远程数据库时出现 getaddrinfo ENOTFOUND
问题描述
我想连接到我的数据库。我使用带有 mysql 数据库的 node.js 服务器。本地主机可以工作,但是当我尝试连接到我的数据库时出现此错误:getaddrinfo ENOTFOUND
const pool = mysql.createPool({
connectionLimit: 10,
password: "****",
user: "***",
host: "***",
port: "3306",
database: "***",
});
正如我所说 - 使用 localhsot 设置它可以工作,但是当我用我的 ionos 凭据填写它时它不会工作
解决方案
您在上面的评论中提到您的数据库由 IONOS 托管,并且您的代码从那里在外部运行。
不幸的是,IONOS 似乎阻止了从外部来源与其数据库产品的连接。Heroku 绝对是一个外部资源。这一事实清楚地记录在他们的帮助网站上:
无法从您的台式计算机或任何其他非 IONOS 源访问您的 IONOS MySQL 数据库:
原则上,您只能通过安装在您的 IONOS 网络空间上的应用程序访问您的 MySQL 数据库,例如您自己安装的 WordPress。出于安全原因,其他访问路径已被阻止。
他们实现此限制的方式可能是不为他们的数据库发布公共 DNS 记录,这就是为什么您的代码抱怨无法为其解析地址的原因。
如果没有特殊安排,此供应商无法满足您的要求。如果这是绝对要求,您应该寻找替代数据库主机。
推荐阅读
- java - JSP 文件中的当前登录用户(Spring Security)
- sql - List的Hibernate LazyLoading初始化
- python - Django在表单上更改具有相同属性的多个对象
- python-3.x - 为什么 conda 找不到文件并放 anaconda search -t conda websockets
- python - ModuleNotFoundError:没有名为 utils 的模块
- javascript - 如何在 React 中更改嵌入推文的宽度?
- angular - Angular 8 & Bootstrap:拒绝应用样式表
- python - 基于 Python 中的其他行创建新行?
- sql - 将多行合并为一列
- python - 如何将具有 NaN 值的 Pandas DataFrame 列的 Unix 时间戳转换为日期时间