基于node-mysql的高可用mysql连接基础库:easymysql
jopen
10年前
easymysql
基于node-mysql
开发而来,提供一个简单、高可用的mysql连接基础库。主要特性如下:
- 支持query超时控制;
- 可控制的连接池支持,SQL总是尽可能早地被 可用的 空闲连接抢到并执行;
- 支持master-slave模式,基于
SHOW VARIABLES LIKE 'READ_ONLY'
方式自动判断主库和从库,运行期间自动感知主从切换; - 即将支持事务。
Usage var Client = require('easymysql'); var mysql = Client.create({ 'maxconnections' : 10 }); mysql.addserver({ 'host' : '127.0.0.1', 'user' : 'write_user', 'password' : '' }); mysql.addserver({ 'host' : '127.0.0.1', 'user' : 'read_user', 'password' : '' }); mysql.on('busy', function (queuesize, maxconnections, which) { // XXX: write log and monitor it }); mysql.query('SHOW DATABASES', function (error, res) { console.log(res); }); // bind params mysql.query({ sql: 'select * from user where user =:user', params: {user: 'xxoo'} }, function (err, rows) { console.log(rows); });