createConnection: 用于创建链接的函数. (Default: mysql.createConnection)
waitForConnections: 决定当没有连接池或者链接数打到最大值时pool的行为. 为true时链接会被放入队列中在可用是调用,为false时会立即返回error. (Default: true)
connectionLimit: 最大连接数. (Default: 10)
queueLimit: 连接池中连接请求的烈的最大长度,超过这个长度就会报错,值为0时没有限制. (Default: 0)
四、连接池集群
允许不同的host链接
// create
var poolCluster = mysql.createPoolCluster(); poolCluster.add(config); // anonymous group
poolCluster.add('MASTER', masterConfig);
poolCluster.add('SLAVE1', slave1Config);
poolCluster.add('SLAVE2', slave2Config);
// Target Group : ALL(anonymous, MASTER, SLAVE1-2), Selector : round-robin(default)
poolCluster.getConnection(function (err, connection) {});
// Target Group : MASTER, Selector : round-robin
poolCluster.getConnection('MASTER', function (err, connection) {});
// Target Group : SLAVE1-2, Selector : order
// If can't connect to SLAVE1, return SLAVE2. (remove SLAVE1 in the cluster)
poolCluster.on('remove', function (nodeId) {
console.log('REMOVED NODE : ' + nodeId); // nodeId = SLAVE1
});
poolCluster.getConnection('SLAVE*', 'ORDER', function (err, connection) {});
// of namespace : of(pattern, selector)
poolCluster.of('*').getConnection(function (err, connection) {});
var pool = poolCluster.of('SLAVE*', 'RANDOM');
pool.getConnection(function (err, connection) {});
pool.getConnection(function (err, connection) {});
// destroy
poolCluster.end();
链接集群的可选参数
canRetry: 值为true时,允许连接失败时重试(Default: true)
removeNodeErrorCount: 当连接失败时 errorCount 值会增加. 当errorCount 值大于 removeNodeErrorCount 将会从PoolCluster中删除一个节点. (Default: 5)
defaultSelector: 默认选择器. (Default: RR)
RR: 循环. (Round-Robin)
RANDOM: 通过随机函数选择节点.
ORDER: 无条件地选择第一个可用节点.
五、切换用户/改变连接状态
Mysql允许在比断开连接的的情况下切换用户
connection.changeUser({user : 'john'}, function(err) {
if (err) throw err;
});
参数
user: 新的用户 (默认为早前的一个).
password: 新用户的新密码 (默认为早前的一个).









