meteor-mysql icon indicating copy to clipboard operation
meteor-mysql copied to clipboard

Mysql errors not always verbose enough

Open thiscaspar opened this issue 11 years ago • 0 comments

Environment:

  • Meteor on Windows, fresh install
  • MariaDB
  • Created new Application, added "numtel:mysql"
  • Created database
  • Created database user with a password

In Meteor code

    var liveDb = new LiveMysql({
      host: 'localhost',
      user: 'root',
      password: '',
      database: 'dbname',
      serverId: 1,
      minInterval: 200
    });

Now when starting my meteor project I get the following error:

I20150427-13:20:29.727(8)? Exception from sub XXXXXX id 95GhDstpSjMcNRxcp Error: Cannot enqueue Query after fatal error.
I20150427-13:20:29.727(8)?     at Protocol._validateEnqueue (C:\Users\USERNAME\AppData\Local\.meteor\packages\numtel_mysql\0.1.7\npm\node_modules\mysql\lib\protocol\Protocol.js:194:16)
I20150427-13:20:29.727(8)?     at Protocol._enqueue (C:\Users\USERNAME\AppData\Local\.meteor\packages\numtel_mysql\0.1.7\npm\node_modules\mysql\lib\protocol\Protocol.js:129:13)
I20150427-13:20:29.727(8)?     at Connection.query (C:\Users\USERNAME\AppData\Local\.meteor\packages\numtel_mysql\0.1.7\npm\node_modules\mysql\lib\Connection.js:185:25)
I20150427-13:20:29.727(8)?     at _update (C:\Users\USERNAME\AppData\Local\.meteor\packages\numtel_mysql\0.1.7\npm\node_modules\mysql-live-select\lib\LiveMysqlSelect.js:111:18)
I20150427-13:20:29.727(8)?     at LiveMysqlSelect.update (C:\Users\USERNAME\AppData\Local\.meteor\packages\numtel_mysql\0.1.7\npm\node_modules\mysql-live-select\lib\LiveMysqlSelect.js:126:5)
I20150427-13:20:29.727(8)?     at new LiveMysqlSelect (C:\Users\USERNAME\AppData\Local\.meteor\packages\numtel_mysql\0.1.7\npm\node_modules\mysql-live-select\lib\LiveMysqlSelect.js:27:10)
I20150427-13:20:29.727(8)?     at LiveMysql.select (C:\Users\USERNAME\AppData\Local\.meteor\packages\numtel_mysql\0.1.7\npm\node_modules\mysql-live-select\lib\LiveMysql.js:90:19)
I20150427-13:20:29.727(8)?     at [object Object]._handler (app\codefile.js:34:24)
I20150427-13:20:29.727(8)?     at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1)
I20150427-13:20:29.727(8)?     at [object Object]._.extend._runHandler (packages/ddp/livedata_server.js:950:1)

Which is not very helpful... I hacked .meteor\packages\numtel_mysql\0.1.7\npm\node_modules\mysql\lib\protocol\Protocol.js to include after line 192

192  if (this._fatalError) {
193   console.log(this._fatalError);
194    err      = new Error(prefixAfter + 'fatal error.');

Then I get more useful info:

I20150427-13:30:55.787(8)? { [Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: NO)]
I20150427-13:30:55.795(8)?   code: 'ER_ACCESS_DENIED_ERROR',
I20150427-13:30:55.795(8)?   errno: 1045,
I20150427-13:30:55.795(8)?   sqlState: '28000',
I20150427-13:30:55.795(8)?   fatal: true }

Anyways, I lack the time myself to fix it, hopefully this gives a pointer to make numtel:mysql even better. Keep up the good work!!

thiscaspar avatar Apr 27 '15 05:04 thiscaspar