当计算机离线时,我的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 }
为什么?
我该怎么办呢?
答案 0 :(得分:4)
Windows在将// Routes with html5pushstate
// ensure routes match client-side-app
app.get('/', ngApp);
app.get('/followers', ngApp);
app.get('/followers/*', ngApp);
app.get('/account', ngApp);
app.get('/account/*', ngApp);
app.get('/explore', ngApp);
app.get('/explore/*', ngApp);
解析为未连接到网络的物理IP地址时存在问题。显而易见的是,在Windows上,当您提供地址localhost
时,它会将其传递给完整的DNS解析程序,该解析程序需要连接到Internet才能正常工作。
在这里找到一个关于可能原因的好答案:Windows 7: “localhost name resolution is handled within DNS itself”. Why?
尝试使用IP地址:
localhost