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

Muk*_*oni 5 node.js node-mysql

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

var mysql = require('mysql');


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

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

有没有更好的方法呢?类似于mysql_select_dbPHP?

rya*_*nmc 6

我发现的唯一方法是使用“USE”命令

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

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

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


Vev*_*eve 6

您可以使用以下changeUser方法更改某些连接参数* :

connection.changeUser({database : 'my_database'}, function(err) {
  if (err) throw err;
});
Run Code Online (Sandbox Code Playgroud)

*这些参数的清单:

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

  • 如何在连接池中切换数据库? (2认同)