O nó é assíncrono, então
connection.end()
é provável que aconteça antes de sua consulta chamar de volta. Além disso, especifique a porta em que o Mysql está sendo executado quando não for padrão. tente isso:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
database : 'test',
port: 8889
});
connection.connect();
connection.query('SELECT * from users', function(err, rows, fields) {
if(err) console.log(err);
console.log('The solution is: ', rows);
connection.end();
});