即使使用IP地址,MagicMirror SQL连接也会出现ENOTFOUND错误

时间:2019-08-25 15:46:49

标签: mysql node.js

我正在使用可以在Github上找到的MagicMirror项目。我已经添加了MMM-MysqlQuery模块。而且我已经将数据库配置添加到配置文件中。但仍然出现ENOTFOUND错误。

项目:https://github.com/MichMich/MagicMirror.git

我已经在树莓派pi 2中设置了代码,并且mysql数据库在pi localhost中。当我使用pi终端运行项目时,出现ENOTFOUND错误。

config: {
  connection: {
   host: "http://192.168.8.100",
   port: 80,
   user: "root",
   password: "123456789",
   database: "mirror"
}

根据了解,此配置将作为参数传递给 MMM-MysqlQuery模块的config.js文件。其中具有数据库连接初始化。

var mysql = require("mysql");

var con = mysql.createConnection({
 host: process.argv[2],
 port: process.argv[3],
 user: process.argv[4],
 password: process.argv[5],
 database: process.argv[6]

});

con.connect(function(err) {
 if (err) throw err;
 con.query(process.argv[7], function(err, result) {
     if (err) throw err;
     console.log(result);
 });
});

我得到的错误就是这样

Whoops! There was an uncaught exception...
{ Error: getaddrinfo ENOTFOUND http://192.168.8.100 
 http://192.168.8.100:80
 at errnoException (dns.js:50:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
 --------------------
at Protocol._enqueue (/home/pi/MagicMirror/modules/MMM-MysqlQuery/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/home/pi/MagicMirror/modules/MMM-MysqlQuery/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/home/pi/MagicMirror/modules/MMM-MysqlQuery/node_modules/mysql/lib/Connection.js:118:18)
at Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-MysqlQuery/node_helper.js:25:17)
at Socket.<anonymous> (/home/pi/MagicMirror/modules/node_modules/node_helper/index.js:113:11)
at emitTwo (events.js:126:13)
at Socket.emit (events.js:214:7)
at /home/pi/MagicMirror/node_modules/socket.io/lib/socket.js:513:12
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'http://192.168.8.100',
host: 'http://192.168.8.100',
port: 80,
fatal: true }

请让我知道代码是否还不够。谢谢你们给我的帮助。

1 个答案:

答案 0 :(得分:0)

http://192.168.8.100不是有效的主机名,因为它根本不是主机名-它是一个URL,并包含方案http://,该方案也不适用于数据库连接

只需使用host: "192.168.8.100"

您将遇到的下一个错误是port: 80的副作用,该错误也不正确。端口80是HTTP(Web)服务器的标准端口...但是您要连接到数据库,而不是Web服务器。对于MySQL,除非您的MySQL安装使用自定义端口(否则不应使用),否则正确的值为port: 3306