2013-03-04 3 views
4

Im пытается подключиться к моей базе данных mysql с помощью node-mysql. Когда я пытаюсь следующий код, я получаю эту ошибку:Ошибка подключения Node-mysql

ОШИБКА: Ошибка: подключитесь ETIMEDOUT

Кто-нибудь знает, что случилось? База данных запущена и работает.

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(1337, '127.0.0.1'); 
console.log('Server running at http://127.0.0.1:1337/'); 

var mysql = require('mysql'); 

var connection = mysql.createConnection({ 
    host: "correct_host", 
    user: "correct_user", 
    password: "correct_password", 
    database: "correct_database", 
    debug: true, 
}); 

connection.connect(function(err) { 
    if (err) { 
     console.log('ERROR: ' + err); 
    } else { 
     console.log('Connected to ' + server.hostname + ' (' + server.version + ')'); 
    }; 
}); 

connection.query('SELECT 1', function(err, rows) { 
    // connected! (unless `err` is set) 
}); 

connection.query('SELECT * FROM Effect', function(err, rows, fields) { 
    if (err) console.log('ERROR: ' + err); 

    for (x in rows) { 
    console.log('Row: ', x); 
    } 
}); 

// Handle disconnect 

function handleDisconnect(connection) { 
    connection.on('error', function(err) { 
    if (!err.fatal) { 
     return; 
    } 

    if (err.code !== 'PROTOCOL_CONNECTION_LOST') { 
     throw err; 
    } 

    console.log('Re-connecting lost connection: ' + err.stack); 

    connection = mysql.createConnection(connection.config); 
    handleDisconnect(connection); 
    connection.connect(); 
    }); 
} 

handleDisconnect(connection); 
+1

Я считаю, что проблема связана с параметром 'host' или' database'. Вы сказали, что db работает. - Он работает на одной машине? Вы проверили подключение к базе данных с этой информацией по-другому? –

+0

да, я могу войти в базу данных, используя phpmyadmin для администрирования базы данных. – Sindresvends

+1

Возможно, ваша база данных mysql только прослушивает подключения на «127.0.0.1» или «localhost». Вы должны попробовать оба, чтобы убедиться. –

ответ

0

это, вероятно, не узел. если это узел, то проверка host: "correct_host" на самом деле является правильным хостом. В противном случае попробуйте подключиться к серверу mysql из командной строки за пределами узла.