Articles of mysql

nodejs与SQLite故障切换的MySQL连接

我正在寻找一个简单的例子(因为我是新来的节点)如何连接到MySQL做node.js写入(INSERT),如果连接到数据库是不成功的我想写INSERT到这两个文件,以便稍后重播或本地SQLite数据库文件。 愿意就是否有更好的方法来提供build议。 任何帮助不胜感激。 问候Ric

获取错误:使用mysql拒绝访问Node.js

我想获得一个使用mysql工作的node.js应用程序。 我运行sudo节点app.js,我得到这个错误: Express server listening on port 80 in development mode events.js:48 throw arguments[1]; // Unhandled 'error' event ^ Error: Access denied for user 'root'@'localhost' (using password: YES) at cmd.process_packet (/Users/…/Documents/Code/…/node_modules/mysql-native/lib/mysql-native/command.js:35:15) at SocketClient.dispatch_packet (/Users/…/Documents/Code/…/node_modules/mysql-native/lib/mysql-native/socketclient.js:105:32) at Socket.<anonymous> (/Users/…/Documents/Code/…/node_modules/mysql-native/lib/mysql-native/socketclient.js:59:18) at Socket.emit (events.js:67:17) at TCP.onread (net.js:362:31) 我为mysql设置了一个安全的用户名和密码,但是除了sudo之外,并没有要求input密码。 我是一个初学者与node.js和尤其是MySQL,所以任何帮助,将不胜感激。

MySQL SQL_NO_CACHE不能正常工作

我有一个表(InnoDB)插入,更新和频繁阅读(通常在几毫秒的爆发)。 我注意到,有时INSERT / UPDATE之后的SELECT语句会得到陈旧的数据。 我认为这是由于caching,但在把SQL_NO_CACHE放在它之前并没有真正做任何事情。 你如何确保SELECT始终等到先前的INSERT / UPDATE结束而不从caching中获取数据? 请注意,这些语句是从单独的请求中执行的(不在相同的代码执行中)。 也许我误解了什么SQL_NO_CACHE实际上… 更新 : @Uday,INSERT,SELECT和UPDATE语句如下所示: INSERT myTable (id, startTime) VALUES(1234, 123456) UPDATE myTable SET startTime = 123456 WHERE id = 1234 SELECT SQL_NO_CACHE * FROM myTable ORDER BY startTime 我尝试使用交易没有运气。 更新 : 我认为这实际上是INSERT的问题,而不是更新。 SELECT语句总是试图获取按时间sorting的最新行。 但是由于INSERT不执行任何表级locking,所以SELECT可能会得到旧数据。 有没有办法强制执行表级locking时执行插入?

npm包构build失败,如何最好的debugging?

我试图在Mac OS X上安装一个MySQL节点包。我试图在本地运行一个客户端项目。 我已经安装了节点和npm,它们工作正常,其他包已经安装好了。 我也编译/安装了完整的LAMP堆栈。 当下面的构build失败时,我没有看到任何有用的错误消息 – 只是关于找不到的库的信息。 不知道它找不到,我无法修复它。 有什么build议? MySQL已经安装了标准的方式 – 下载包,./configure,d,make / install。 $ npm install mysql-libmysqlclient npm http GET https://registry.npmjs.org/mysql-libmysqlclient npm http 304 https://registry.npmjs.org/mysql-libmysqlclient > mysql-libmysqlclient@1.3.3 install /Users/botskonet/node_modules/mysql-libmysqlclient > node-gyp rebuild info it worked if it ends with ok spawn python [ '/Users/botskonet/.node-gyp/0.6.12/tools/gyp_addon', 'binding.gyp', '-I/Users/botskonet/node_modules/mysql-libmysqlclient/build/config.gypi', '-f', 'make' ] spawn make [ 'BUILDTYPE=Release', […]

Nodejs Expressjs会话IP和浏览器代理匹配

我正在使用connect-mysql-session将会话存储在数据库中。 现在我的问题是我如何添加包含浏览器代理和IP地址的用户数据来检查会话是否有效? 我如何获得这些信息? 我如何检查它是否匹配? users.login(credentials,function(err, results) { //On errors if (err) { res.render(routes.index, { title: 'Login' }); //On success } else if (results[0]) { //Set session data and redirect to start page req.session.userdata = results[0]; req.session.userdata.email = req.body.email_login; req.session.is_logged_in = true; res.redirect('/start'); //Wrong credentials } else { req.flash('warning','Wrong password or login'); res.render('index', { title: 'Login' […]

Node.js beginner-请求没有查询string

我是node.js的新手 我正在处理的一个项目需要将大数组(625项)作为string存储在MySQL数据库中,而我正在使用Node MySQL来完成这个任务。 现在我有了它,这样,当“/(列名)?(值)”请求被更新时,行就被更新了。 不幸的是,学习将625个项目作为string传递给节点并不是最有效的方法。 除了查询string之外,对于将大数组作为string传递的替代方法,您有任何build议吗? var http = require('http'), mysql = require("mysql"), url = require("url"), express = require("express"); var connection = mysql.createConnection({ user: "root", database: "ballot" }); var app = express(); app.use(express.bodyParser()); app.options('/', function (request, response) { response.header("Access-Control-Allow-Origin", "*"); response.end(); }); app.get('/', function (request, response) { connection.query("SELECT * FROM pathfind;", function (error, rows, fields) […]

节点js + mysql推送通知

我正在从事像Facebook这样的通知项目。 即当有人对他人的个人资料或其他人的个人资料上的任何链接评论。 我想使用nodejs实时推送通知。 这些评论,喜欢的数据存储在“通知表”通过ajax请求或通过发布到php.I在网上nodejs实时推送通知的许多教程,但不幸的是,他们谈论保持观看文件并在文件更新时发出通知。 有没有人知道如何监视mysql表,所以无论何时,表中插入任何数据,都会发出通知。 我没有得到什么样的代码,我应该写在nodejs。 请让我知道是否需要更多的解释。 提前致谢。

套接字streamasynchronous调用到rpc行动内的MySQL

首先,我需要告诉你,我对nodejs,socketstream,angularjs和JavaScript的奇观一般都很陌生。 我来自Java背景,这可能解释我对做asynchronous的正确方式的无知。 为了玩弄东西,我从americanyak安装了ss-angular-demo 。 我现在的问题是,Rpc似乎是一个同步接口,我的电话mysql数据库有一个asynchronous接口。 如何在Rpc调用时返回数据库结果? 以下是我使用socketstream 0.3所做的工作: 在app.js我成功地告诉ss允许我的mysql数据库连接通过把ss.api.add('coolStore',mysqlConn); 在那里在正确的地方( 正如在socketstream文档中所解释的 )。 我使用mysql npm,所以我可以在Rpc中调用mysql 服务器/ RPC / coolRpc.js exports.actions = function (req, res, ss) { // use session middleware req.use('session'); return { get: function(threshold){ var sql = "SELECT cool.id, cool.score, cool.data FROM cool WHERE cool.score > " + threshold; if (!ss.arbStore) { console.log("connecting to mysql […]

加快MySQL中的大量查询语句的性能

我有作为服务器上的cron作业运行的node.js脚本。 它asynchronous接收来自外部数据源的数据(几个并发请求),并使用多个查询语句更新数据库,其中UPDATE查询以分号分隔。 一个8000-UPDATES多查询运行约55秒。 有没有办法来加快整个数据库更新过程? 单个查询非常简单 – 就像 UPDATE my_table SET field1 = smth WHERE id = some_id; 该索引是为id字段创build的。

node-mysql池和socket.io

我目前使用一个单一的MySQL连接为我的应用程序的所有用户。 我想开始使用一个池(它应该更优化,对吗?),但我有一个“结构”的问题: createPool方法只适用于callback,我不明白如何将连接传递给socket.io事件。 我的意思是,在server.js文件中有一个连接构build点 pool.getConnection(function(err, connection) { //I'm supposed to use the connection here } 然后有一个sockets事件被“捕获” io.sockets.on('connection', function(socket){ socket.on('userLogin', function(id_user){ //I need the connection here to run a query with 'id_user'! }); }); 在第二点,我需要连接,然后我可以运行 connection.query('SELECT bla bla bla…', function(err, data){ connection.end(); }); 我认为这是连接到应用程序的每个用户都有不同连接的唯一方法,但是我真的无法理解如何将连接“传递”到socket.io“空间”。