1

我正在运行这个脚本:

var mysql      = require('mysql');

var connection = mysql.createConnection("mysql://localhost/");

connection.connect();
console.log(connection)

但是遇到错误...

{ config: 
   { host: 'localhost',
     port: 3306,
     socketPath: undefined,
     user: undefined,
     password: undefined,
     database: '',
     insecureAuth: false,
     supportBigNumbers: false,
     debug: undefined,
     timezone: 'local',
     flags: '',
     queryFormat: undefined,
     pool: undefined,
     typeCast: true,
     maxPacketSize: 0,
     charsetNumber: 33,
     clientFlags: 193487 },
  _socket: 
   { _handle: 
      { writeQueueSize: 0,
        owner: [Circular],
        onread: [Function: onread] },
     _pendingWriteReqs: 0,
     _flags: 0,
     _connectQueueSize: 0,
     destroyed: false,
     errorEmitted: false,
     bytesRead: 0,
     _bytesDispatched: 0,
     allowHalfOpen: undefined,
     _connecting: true,
     writable: true,
     _events: 
      { data: [Function: ondata],
        end: [Object],
        close: [Object],
        error: [Object],
        drain: [Function: ondrain] } },
  _protocol: 
   { readable: true,
     writable: true,
     _config: 
      { host: 'localhost',
        port: 3306,
        socketPath: undefined,
        user: undefined,
        password: undefined,
        database: '',
        insecureAuth: false,
        supportBigNumbers: false,
        debug: undefined,
        timezone: 'local',
        flags: '',
        queryFormat: undefined,
        pool: undefined,
        typeCast: true,
        maxPacketSize: 0,
        charsetNumber: 33,
        clientFlags: 193487 },
     _connection: [Circular],
     _callback: null,
     _fatalError: null,
     _quitSequence: null,
     _handshakeSequence: 
      { _callback: undefined,
        _ended: false,
        _callSite: '    at Handshake.Sequence (/usr/local/lib/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:21)\n    at new Handshake (/usr/local/lib/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12)\n    at Protocol.handshake (/usr/local/lib/node_modules/mysql/lib/protocol/Protocol.js:41:50)\n    at Connection.connect (/usr/local/lib/node_modules/mysql/lib/Connection.js:63:18)\n    at Object.<anonymous> (/Users/itaccess/Desktop/test.js:5:12)\n    at Module._compile (module.js:449:26)\n    at Object.Module._extensions..js (module.js:467:10)\n    at Module.load (module.js:356:32)\n    at Function.Module._load (module.js:312:12)\n    at Module.runMain (module.js:492:10)',
        _config: [Object],
        _handshakeInitializationPacket: null,
        _events: [Object] },
     _destroyed: false,
     _queue: [ [Object] ],
     _handshakeInitializationPacket: null,
     _parser: 
      { _supportBigNumbers: false,
        _buffer: <Buffer >,
        _longPacketBuffers: [],
        _offset: 0,
        _packetEnd: null,
        _packetHeader: null,
        _onPacket: [Function],
        _nextPacketNumber: 0,
        _encoding: 'utf-8',
        _paused: false },
     _events: 
      { drain: [Object],
        error: [Object],
        end: [Object],
        close: [Object],
        data: [Function: ondata],
        unhandledError: [Function] } },
  _connectCalled: true }
{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  fatal: true }

而控制台中的这个错误......

/Users/itaccess/Desktop/test.js:10
  if (err) throw err;
                 ^
Error: connect ECONNREFUSED
    at errnoException (net.js:769:11)
    at Object.afterConnect [as oncomplete] (net.js:760:19)
    --------------------
    at Handshake.Sequence (/usr/local/lib/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:21)
    at new Handshake (/usr/local/lib/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12)
    at Protocol.handshake (/usr/local/lib/node_modules/mysql/lib/protocol/Protocol.js:41:50)
    at Connection.connect (/usr/local/lib/node_modules/mysql/lib/Connection.js:63:18)
    at Object.<anonymous> (/Users/itaccess/Desktop/test.js:5:12)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)

我确定不需要用户名/密码,并且我也尝试过各种密码。我尝试使用对象来设置设置和查询字符串。我已经尝试显式添加端口,无论如何这是默认端口。

为什么连接不上?

4

2 回答 2

6

您需要设置套接字路径。

var mysql      = require('mysql');
var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'password',
    socketPath  : '/var/run/mysqld/mysqld.sock',
});
于 2013-12-10T04:59:53.477 回答
0

试试这样的,我想你肯定需要登录名和密码

一些示例代码

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
  if (err) throw err;

  console.log('The solution is: ', rows[0].solution);
});

connection.end();
于 2013-02-27T16:48:48.210 回答