2015-12-01 4 views
-1

У меня возникли проблемы с доступом к MYSQL.Узел Ошибка JS «getaddrinfo ENOTFOUND»

Существует Получ на мой код ниже:

app.get('/users',function(request,response){ 
    client.query('select * from User where 1=1',function(error,result){ 
     if(error){ 
      response.json('unfortunately fail'); 
      console.log('unfortunately fail , error : %s',error); 
      console.log('error stack: %s',error.stack); 
      console.log('error message: %s',error.message); 
      throw error; 
     }else{ 
      console.log('select success....'); 
      response.json('select success....'); 
      response.json(result); 
     } 
    }); 
}); 

Когда этот метод выполняется, есть ошибка:

unfortunately fail , error : Error: getaddrinfo ENOTFOUND 
error stack: Error: getaddrinfo ENOTFOUND 
at errnoException (dns.js:37:11) 
at Object.onanswer [as oncomplete] (dns.js:124:16) 
at Protocol._enqueue (/node_modules/mysql/lib/protocol/Protocol.js:135:48) 
at Protocol.handshake (/node_modules/mysql/lib/protocol/Protocol.js:52:41) 
at Connection.connect (/node_modules/mysql/lib/Connection.js:123:18) 
at Connection._implyConnect (/node_modules/mysql/lib/Connection.js:417:10) 
at Connection.query (/node_modules/mysql/lib/Connection.js:199:8) 
at app.listen.host (/web.js:70:10) 
at callbacks (/node_modules/express/lib/router/index.js:164:37) 
at param (/node_modules/express/lib/router/index.js:138:11) 
at pass (/node_modules/express/lib/router/index.js:145:5) 
at Router._dispatch (/node_modules/express/lib/router/index.js:173:5) 

И это о переменных (экспресс, MySQL. ..)

var http = require('http'); 
var express = require('express'); 
var request = require('request'); 
var mysql = require('mysql'); 

var client = mysql.createConnection({ 
    host:'http://nodejs.somewhere.com/WebMysql', 
    port : 3306, 
    user : 'user', 
    password : 'password', 
    database : 'database' 
}); 
var app = express(); 
app.use(express.bodyParser()); 
app.use(app.router); 
+0

Я думаю, что речь идет не о проблеме с кодом ... не так ли? – LKM

+0

Должен ли я проверить, запущен ли mysql? тогда как? – LKM

+0

псих понизил мой вопрос! – LKM

ответ

0

Ваш host установка для подключения к базе данных MySQL неверен (ENOTFOUND для getaddrinfo означает, что разрешение DNS не выполнено). Это должно быть просто имя хоста сервера mysql (например, nodejs.somewhere.com).

+0

Спасибо за ваш быстрый ответ, но не могли бы вы объяснить мне легче? Вы имеете в виду не адрес домена, а идентификатор? – LKM

+0

'http://nodejs.somewhere.com/WebMysql' - это только пример домена, реальный домен отличается. Вы имеете в виду это? – LKM

+1

Сервер mysql должен работать где-то (на порту 3306). Параметр 'host' - это имя хоста/IP-адрес этого сервера. Например, многие веб-приложения расположены на той же машине, что и сервер mysql, поэтому они будут использовать «localhost». – mscdex

Смежные вопросы