在与 node-mysql 的现有连接中更改数据库的推荐方法
Recommended way to change database in existing connecction with node-mysql
我正在尝试更改节点中现有连接中的数据库。
连接在 createConnection
调用中可能有也可能没有数据库名称。
这是代码:
var mysql = require('mysql');
connection = mysql.createConnection( {
host : 'localhost',
user : 'me',
password : 'secret',
port : 3306,
/* database : 'test' // optional */
});
我正在使用 node-mysql 库。
目前我正在关闭连接并重新连接。
有更好的方法吗?类似于 php?
中的 mysql_select_db
我找到的唯一方法是使用 'USE' 命令
在你的例子中它看起来像这样
let database = 'my_database';
connection.query(`USE ${database}`, (error, results, fields) => {
...
});
之后所有使用此连接的查询都将发送到新数据库
您可以使用 changeUser
方法更改一些连接参数*:
connection.changeUser({database : 'my_database'}, function(err) {
if (err) throw err;
});
*这些参数的列表:
user
:新用户的名称(默认为之前的用户名)。
password
:新用户的密码(默认为之前的密码)。
charset
: 新的字符集(默认为之前的字符集)。
database
: 新数据库(默认为之前的数据库)。
或者只在查询中使用数据库名称
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)
我正在尝试更改节点中现有连接中的数据库。
连接在 createConnection
调用中可能有也可能没有数据库名称。
这是代码:
var mysql = require('mysql');
connection = mysql.createConnection( {
host : 'localhost',
user : 'me',
password : 'secret',
port : 3306,
/* database : 'test' // optional */
});
我正在使用 node-mysql 库。 目前我正在关闭连接并重新连接。
有更好的方法吗?类似于 php?
中的mysql_select_db
我找到的唯一方法是使用 'USE' 命令
在你的例子中它看起来像这样
let database = 'my_database';
connection.query(`USE ${database}`, (error, results, fields) => {
...
});
之后所有使用此连接的查询都将发送到新数据库
您可以使用 changeUser
方法更改一些连接参数*:
connection.changeUser({database : 'my_database'}, function(err) {
if (err) throw err;
});
*这些参数的列表:
user
:新用户的名称(默认为之前的用户名)。password
:新用户的密码(默认为之前的密码)。charset
: 新的字符集(默认为之前的字符集)。database
: 新数据库(默认为之前的数据库)。
或者只在查询中使用数据库名称
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)