node.js - Why is node script failing a localhost connect to MySQL -


i can't figure out why script failing connect mysql instance.

i can connect database mysql client on command line, exact same credentials. can connect database remote client, using same credentials.

the database connect script works fine if set parameters remote database.

neither host or socket parameters works through script. make dumb mistakes @ times if one, can't see it.

an outside observer me here.

==================== db connect code

var db = require('./config'); var mysql = require('mysql');  var connection = mysql.createconnection({     host: db.db_parms.host,     port: db.db_parms.port,     user: db.db_parms.user,     password: db.db_parms.password,     database: db.db_parms.context,     debug:true });  connection.connect(function(err) {     if(err){         console.log("sql connect error: " + err);     } else {         console.log("sql connect successful.");     } });  connection.query("select now()", function(error,results,fields) {     console.log("results:" + results);     console.log("fields:" + fields); });   exports.connection = connection; 

=== error stack returned:

sql connect error: error: connect econnrefused 127.0.0.1:3307     @ object.exports._errnoexception (util.js:1036:11)     @ exports._exceptionwithhostport (util.js:1059:20)     @ tcpconnectwrap.afterconnect [as oncomplete] (net.js:1080:14)     --------------------     @ protocol._enqueue (/home/kingram/node/apps/fss_register/node_modules/mysql/lib/protocol/protocol.js:141:48)     @ protocol.handshake (/home/kingram/node/apps/fss_register/node_modules/mysql/lib/protocol/protocol.js:52:41)     @ connection.connect (/home/kingram/node/apps/fss_register/node_modules/mysql/lib/connection.js:130:18)     @ object.<anonymous> (/home/kingram/node/apps/fss_register/db/db_connect.js:19:12)     @ module._compile (module.js:556:32)     @ object.module._extensions..js (module.js:565:10)     @ module.load (module.js:473:32)     @ trymoduleload (module.js:432:12)     @ function.module._load (module.js:424:3)     @ module.runmain (module.js:590:10) 

========= config.js host = 'localhost':

var db_parms = { host: 'localhost', port: 3307, user:'foo', password:'bar', database:'thisone' }  exports.db_parms = db_parms; 

========= config.js host = socket:

host: '/var/run/mysqld/mysqld.sock', 

=== error stack returned:

sql connect error: error: getaddrinfo enotfound /var/run/mysqld/mysqld.sock /var/run/mysqld/mysqld.sock:3307     @ errnoexception (dns.js:28:10)     @ getaddrinforeqwrap.onlookup [as oncomplete] (dns.js:76:26)     --------------------     @ protocol._enqueue (/home/kingram/node/apps/fss_register/node_modules/mysql/lib/protocol/protocol.js:141:48)     @ protocol.handshake (/home/kingram/node/apps/fss_register/node_modules/mysql/lib/protocol/protocol.js:52:41)     @ connection.connect (/home/kingram/node/apps/fss_register/node_modules/mysql/lib/connection.js:130:18)     @ object.<anonymous> (/home/kingram/node/apps/fss_register/db/db_connect.js:19:12)     @ module._compile (module.js:556:32)     @ object.module._extensions..js (module.js:565:10)     @ module.load (module.js:473:32)     @ trymoduleload (module.js:432:12)     @ function.module._load (module.js:424:3)     @ module.runmain (module.js:590:10) 

i'm not sure if error socket permissions issue or not , if relevant.

as turns out, check of my.conf shows bind-addresss set ip of server , not localhost.

setting host: '<ip-address>' fixed issue.


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -