mysql - 电脑离线时连接nodeJS到MySQL

标签 mysql node.js electron

当计算机离线时,我的 Electron 应用无法连接到本地 MySQL。
当计算机连接到互联网时,一切正常。
仅在Windows上进行了测试。
同样的情况也发生在 NodeJS(命令提示符)和 Electron 中。

代码:

s = {database: "test", user: "test", password: "test", host: "localhost"}
var mysql = require('./mysql');
var mysqlc = mysql.createConnection(settings);
mysqlc.connect(function(err) { console.log(err); });

错误代码为:

{ [Error: getaddrinfo ENOENT localhost:3306]
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'getaddrinfo',
hostname: 'localhost',
host: 'localhost',
port: 3306,
fatal: true }

为什么?
我能做什么呢?

最佳答案

Windows 在未连接到网络时将 localhost 解析为物理 IP 地址时存在问题。显然,在 Windows 上,当您提供地址 localhost 时,它会将其传递给完整的 DNS 解析器,该解析器需要连接到互联网才能正常工作。

在这里找到了一个关于可能原因的好答案:Windows 7: “localhost name resolution is handled within DNS itself”. Why?

尝试使用 IP 地址本身:

s = {database: "test", user: "test", password: "test", host: "127.0.0.1"}
var mysql = require('./mysql');
var mysqlc = mysql.createConnection(settings);
mysqlc.connect(function(err) { console.log(err); });

关于mysql - 电脑离线时连接nodeJS到MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39065459/

相关文章:

mysql - 排序错误 Magento Change from alphabetical to numeric sort

php - mySQL多查询解决方案

mysql - nodejs mysql 不能与 mariadb 一起工作

javascript - Materialize-CSS Navbar 标签不适用于 Electron

css - 我可以自定义 Electron 托盘应用程序吗?

javascript - Electron Packager和NightmareJS的小问题

php - 基于不同键的回显数组

mysql - 如何从 mysql 的 sql_mode 中删除 NO_ZERO_DATE?

node.js - 如何向路由传递参数?

node.js - 使用 Axios 在 Sequelize 上更新请求 (PUT) 超时