建议使用node-mysql在现有连接中更改数据库的方法

时间:2015-04-09 04:43:09

标签: node.js node-mysql

我正在尝试更改节点中现有连接中的数据库。 连接在createConnection调用中可能有也可能没有数据库名称。 这是代码:

var mysql = require('mysql');


connection = mysql.createConnection( {
    host               : 'localhost',
    user               : 'me',
    password           : 'secret',
    port               : 3306,
    /* database           : 'test' // optional */
});

我正在使用node-mysql lib。 目前我正在关闭连接并重新连接。

有没有更好的方法呢?类似于php中的mysql_select_db

3 个答案:

答案 0 :(得分:6)

您可以使用changeUser方法更改部分连接参数*:

connection.changeUser({database : 'my_database'}, function(err) {
  if (err) throw err;
});

*这些参数列表:

  • user:新用户的名称(默认为上一个用户)。
  • password:新用户的密码(默认为上一个用户)。
  • charset:新的字符集(默认为上一个字符集)。
  • database:新数据库(默认为上一个数据库)。

答案 1 :(得分:3)

我找到的唯一方法是使用'USE'命令

在你的例子中,它看起来像这个

let database = 'my_database';
connection.query(`USE ${database}`, (error, results, fields) => {
    ...
  });

之后,使用此连接的所有查询都将发送到新数据库

答案 2 :(得分:1)

或者只是在查询中使用数据库名称

conn.query('SELECT H FROM other.GeoDB WHERE H = \'r1r0f\' LIMIT 1  ', function (err, res, f)
conn.query('SELECT * FROM data.users WHERE U = \'123\' LIMIT 1  ', function (err, res, f)