我正在使用可以在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 }
请让我知道代码是否还不够。谢谢你们给我的帮助。
答案 0 :(得分:0)
http://192.168.8.100
不是有效的主机名,因为它根本不是主机名-它是一个URL,并包含方案http://
,该方案也不适用于数据库连接
只需使用host: "192.168.8.100"
。
您将遇到的下一个错误是port: 80
的副作用,该错误也不正确。端口80是HTTP(Web)服务器的标准端口...但是您要连接到数据库,而不是Web服务器。对于MySQL,除非您的MySQL安装使用自定义端口(否则不应使用),否则正确的值为port: 3306
。