Tag: mariadb

我应该何时打开/closures与数据库的连接? (MariaDB / node.js)

我正在使用https://github.com/mscdex/node-mariasql 我在DB上运行查询的过程中有这些阶段: var Client = require('mariasql'); var client = new Client(); client.connect(…); client.query(…); client.end(); 我应该什么时候运行这些? 每个查询运行整个事情(当然除外)? 保留客户端的一个实例并始终保持打开状态,只需对每个查询运行.query查询? 谢谢

用Node和MySQL / MariaDB构build一个可伸缩的API

在使用依赖于MySQL的Node.js构buildAPI或Web应用程序时(或者在我的情况下是MariaDB),什么被认为是处理和pipe理连接的最佳实践? 根据node-mysql的文档,似乎有两种使用方法: var connection = mysql.createConnection({…}); app.get("/", function(req, res) { connection.query("SELECT * FROM ….", function(error, result) { res.json(result); }); }); – 要么 – var pool = mysql.createPool({…}); app.get("/", function(req, res) { pool.getConnection(error, connection) { if (error) { console.log("Error getting new connection from pool"); } else { connection.query("SELECT * FROM ….", function(error, result) { connection.release(); res.json(result); […]

MariaDB 10.0与SphinxSE

我有一个关于将Sphinx与MariaDB 10.0集成的问题。 数据库与SphinxSE存储引擎打包在一起,但我无法find有关如何设置的详细信息。 考虑以下情况: 我有一个使用数据库的图书销售应用程序,具有下列表格:“书”,“列表”和“学校”。 “列表”包含与单个书籍和单个学校的关系。 一本“书”包含几列,最重要的是“标题”和“作者”。 我想使用Sphinx在“Book”表上进行全文search,典型的查询可能会像这样(在伪SQL中):“查找所有标题包含string”Harry P“的书,目前在哈佛大学上市“。 根据MariaDB的文章 :“你需要创build一个特殊的ENGINE = SPHINX'search表',然后使用全文查询进行SELECT …” – 这意味着Sphinx根本无法访问/索引现有的MariaDB表? 我必须重新创build我的“书”表作为SphinxSE表? 如果是这种情况,我该如何指定这个表和我的其他非Sphinx表(列表,学校等)之间的关系? 上面的文章给出了一个非常简单的JOIN示例,但是我仍然感到困惑。 如果所有的“书籍”都存储在狮身人面像表中,MariaDB可以访问这个表格以查询不同types的查询(不需要全文search)? 作为一个相关的问题,使狮身人面像能够为书的标题和作者编制索引的好方法是什么? 该应用程序将始终指定哪个字段被查询。 任何帮助将不胜感激,因为几个小时的search和阅读仍然在这个话题上大部分在黑暗中。

node.js,mysql,date时间和时间偏移量

我有一个连接到mariadb实例使用mysql模块的节点: 节点模块,mysql:“version”:“2.5.3”,“license”:“MIT”,“作者”:{“name”:“FelixGeisendörfer”,… 节点,版本v0.12.0 我正在使用连接池来访问mysql: mysqlPool = mysql.createPool({'host':'myhost', 'port':'3306', 'database':'mydb', 'user':'root', 'password':'mypass', 'timezone':'utc'}); 在我的数据库中,我有一个表中的date时间字段设置为:2015-06-11 09:25:43 但是,当我从数据库中查询这个答案是:Thu Jun 11 2015 10:25:43 GMT + 0100(GMT Daylight Time) 我的问题是为什么GMT + 0100被应用到响应? 谢谢,

使用Web套接字从数据库到客户端的实时数据更新/更改

我正在尝试使用Web套接字构build一个实时应用程序。 目前我正在使用ajax从客户端拉(每个固定的时间间隔)来获取数据库表的新变化。 我并不完全了解如何使应用程序实时。 当前实施: 在我的应用程序中,我通过从数据库(MariaDB)的ajax轮询获取数据,并在客户端的表中显示它。 预期的行为: 从客户端没有轮询,每当数据库端发生变化,它应该在所有连接的客户端更新。 在我的search过程中,我遇到了一些解决scheme: Node.js + server.io + oracle数据库 RethinkDB 服务器发送事件 连续查询通知 请帮助我find更好的解决scheme。

与MariaDB一起发生错误

我正在尝试为我的MariaDB设置为ORM的sequelize 。 这是我的设置: var sequelize = require('sequelize'); var db= new sequelize('dbname', 'user', 'pass', { dialect: 'mariadb' }); 当我运行我的应用程序时,出现以下错误: /my/path/to/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:23 throw new Error('Please install mysql package manually'); ^ Error: Please install mysql package manually 为什么sequelize尝试连接到mysql而不是mariadb在dialect指令中指定? 我错过了什么吗?

错误:找不到模块'../build/Debug/sqlclient'

在目录中我做了standard-npm安装mariasql – 保存。 当我运行我的服务器文件-node app.js. 它返回一个这样的错误: Error: Cannot find module '../build/Debug/sqlclient' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/asa/Dropbox/justRent/development/node_modules/mariasql/lib/Client.js:12:11) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17)

在NodeJs中使用mariadb查询来使用asynchronous的正确方法是什么?

我是新来asynchronous/等待。 我试图使用asynchronous和等待,但查询不等待,它发生在最后和页面呈现之前的查询,所以我不能得到正确的答案呈现页面上。 这是我的代码之前使用asynchronous等待 orderMiddleware.newOrder = function (req, res) { var total = 0 var curr_total = 0 // get items from cart c.query('select * from cart where user_id=:userId', { userId: req.user.ID }, function (err, cart) { if (err) { console.log(err) } else { cart.forEach(function (item) { // Find item from DB and check their price […]

使用MariaDB批量插入和删除Waterline / Sails.js

在我的Sails.js应用程序中,我有一个表auctions ,它包含从Battle.net API最后一次转储所收到的数据。 因此,每当一个realm的新的转储到达时,我需要清除所有与这个realm相关的行,然后插入新的领域。 我可以这样做: 一次性发送(使用destroy()发送一个查询,另一个使用自身的转储); 或者小批量(按item分组,然后用realm和项目destroy()所有logging,然后插入新logging)。 我目前正在使用async.forEachOfSeries来完成上述的小批量操作,但是当前的负载(每次运行作业时都会插入45k条logging),速度太慢了,这并不考虑是否需要更新item工具提示logging。 如果我试图一次插入它们,Node.js会启动分页并挂起,或者MariaDB比Waterline允许的时间要长。 我怎样才能更加可扩展地解决这个问题? 会async.queue或async.cargo工作?

有mariadb的Node-mysql

我已经使用mariadb作为一个MySQL服务器。 但是,我不确定使用为mysqldevise的节点包是一个好主意,用于mariadb。 实际上有两个节点包: 对于mscdex / node-mariasql 对于mysqljs / mysql 我目前使用mysql,因为它看起来很成熟和维护。 这似乎也与我身边的玛丽亚德很好地合作。 使用mysqljs / mysql通过mscdex / node-mariasql作为mariadb服务器是否有任何限制/不兼容/安全问题? 谢谢