尝试将用户连接到本地mysql数据库时出现零错误

时间:2014-07-04 20:15:11

标签: mysql node.js unix ssh localhost

使用npm any-db any-db-mysql

var db = anyDB.createConnection('mysql://db_user:921F9DB7pnn0ka777@localhost/db1',function(e,r){if(e){console.log('db.err: '+e);}}); // also tried 127.0.0.1

我应该看到控制台日志

db.err: null

但我不是。 (我看不出任何错误)。

db.query("SELECT * FROM btns WHERE id='1'").on('row',function(e,r){
    console.log('err: '+e);
    console.dir(r);
    });

上面也没有打印任何内容(甚至没有错误);

在我的ssh会话中mysql>显示数据库;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| db1                |
| test               |
+--------------------+

的MySQL>使用db1;

的MySQL> show tables;

+---------------------------+
| Tables_in_db1             |
+---------------------------+
| btns                      |
+---------------------------+

db_user在数据库' mysql'中,设置如下:

mysql> use mysql;
mysql> update user set password=PASSWORD('921F9DB7pnn0ka777') where user='db_user';
mysql> flush privileges;
mysql> exit;

1 个答案:

答案 0 :(得分:1)

为什么你会期望第一个案例输出任何东西?如果错误参数是真值(null不是),您只需记录。

对于第二种情况,any-db / any-db-mysql不会发出' row'流(非回调)版本的事件。流版本返回可读流,因此您需要使用标准方法从可读流中获取数据(在对象模式下):

  • 倾听数据'事件中的数据'事件处理程序的参数是一个行对象。
  • 或重复调用.read()以获取行对象

同样对于流媒体版本,您可以收听“错误”错误。检查错误的事件。