MAMP MySQL Problem
Using the library node-mysql I found myself with an error that refused my node app to connect to an MySQL Database or in fact the server itself. At first I blame the library, searching and searching and I didn't find any solution that leads me to fix error. Every time I tried a connection I always get the error : Error: connect ECONNREFUSED
.
var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123' }); connection.connect(function(err) { if (err) { console.error('error connecting: ' + err.stack); return; } console.log('connected as id ' + connection.threadId); });
So I wrote an issue and it was not a library issue, it was MAMP's MySQL bad configuration. There is two thing that can resolve this problem:
Solution #1#
On MAMP disable Allow local access only
.
Solution #2#
run mysql_config --socket
in the terminal and use the output as socketPath
value.
$ mysql_config --socket /tmp/mysql.sock
Probably when you run mysql_config
it would says:
-bash: mysql_config: command not found
In MAMP is located in: /Applications/MAMP/Library/bin/mysql_config
so it would be:
$ /Applications/MAMP/Library/bin/mysql_config --socket /tmp/mysql.sock
You can use alias or export to make this long path short.
var connection = mysql.createConnection({ socketPath : '/tmp/mysql.sock', host : 'localhost', user : 'root', password : '123' });
Hope it helped you in any way.