使用 node.js,我如何写入一个 MySQL 数据库并从另一个数据库读取?

Posted

技术标签:

【中文标题】使用 node.js,我如何写入一个 MySQL 数据库并从另一个数据库读取?【英文标题】:Using node.js, how can I write to one MySQL DB and read from another? 【发布时间】:2013-03-31 04:28:32 【问题描述】:

具体来说,我说的是mysql Master-Slave(s) Replication。据我了解,我所有的读取都应该从一个从属设备(或隐藏在负载均衡器后面的多个从属设备)进行,而我所有的写入都应该直接发送到主设备。

如何使用node.js 执行此操作?我正在使用MySQL Active Record 包进行数据库查询,但我认为它本身并不支持它。我想我可以破解包裹并遇到if is write-query, then use db1 类型的情况,但我想知道是否有更简单的方法。

【问题讨论】:

有什么原因你不想只创建两个适配器吗? 创建两个适配器是什么意思? 【参考方案1】:

你可以像这样创建两个适配器:

var activeRecord = require('mysql-activerecord');
var readDB = new activeRecord.Adapter(
    server: 'slave.db.com',
    username: 'user',
    password: 'pass',
    database: 'db'
);
var writeDB = new activeRecord.Adapter(
    server: 'master.db.com',
    username: 'user',
    password: 'pass',
    database: 'db'
);

当你去做update或其他写作查询时,使用writeDB;当你去做select 时使用readDB

另一种选择是切换到另一个支持此功能的 ORM。我知道这不是一个很好的解决方案。例如,Sequelize 被广泛使用并支持开箱即用。

【讨论】:

以上是关于使用 node.js,我如何写入一个 MySQL 数据库并从另一个数据库读取?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Node.js 读取/写入图像?

Node.js写入YAML文件

使用 Node.js 将一行写入 .txt 文件

如何使用 node.js 插入多个 mysql 查询?

Node.js - 如何将流转换为字符串

在 Node.js 中如何停止脚本执行,成功向控制台写入错误消息,然后退出脚本?