El nodo es asíncrono, por lo que connection.end()
es probable que suceda antes de que su consulta vuelva a llamar. Además, especifique el puerto en el que se ejecuta Mysql cuando no es estándar.
prueba esto:
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();
});