Miałem podobny problem, w którym otrzymywałem ten sam błąd.
Odpowiedź dla mnie zakończyła się tym, że używam innego portu. Domyślnie mysql oczekuje portu 3306, ale ja używałem MAMP, gdzie port serwera MySQL został określony jako 8889. Jak tylko dodałem definicję portu do mojego połączenia z bazą danych, wszystko było w porządku:
var connection = mysql.createConnection({
port: 8889,
user: 'root',
password : 'password',
database : 'my_database'
});
UWAGA:To jest dla Maca używającego MAMP, nie próbowałem go na Ubuntu ani Windows.