我有一个nodejs(带快递)openshift应用程序,它有一个MySQL数据库(因为这是我最熟悉的),我无法弄清楚如何在本地环境中连接它.我的上一个项目我使用php框架和mamp连接到本地数据库.节点的等价物是什么?这是我必须连接的代码:
var mysql = require('mysql'); var connection = mysql.createConnection({ host : '127.0.0.1', port : '3307', database : 'test'
});
connection.connect( function(err){ if (err){ throw err; } else { console.log('Connected'); } });
尝试连接本地时出现以下错误:
Error: connect ETIMEDOUT at errnoException (net.js:901:11) at Object.afterConnect [as oncomplete] (net.js:892:19) -------------------- at Protocol._enqueue (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/Protocol.js:110:26) at Protocol.handshake (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/Protocol.js:42:41) at Connection.connect (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/Connection.js:98:18) at Object.(/Users/brandonmoffitt/stembudsnode/server.js:16:12) 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 Function.Module.runMain (module.js:497:10) at startup (node.js:119:16)
我猜这是因为我试图本地连接到openshift设置的MySQL数据库,我收到错误.我只是不知道还有什么可以尝试.我也尝试过没有密码.
如果我切换到主机的localhost,这是我收到的错误:
Error: ER_DBACCESS_DENIED_ERROR: Access denied for user ''@'localhost' to database 'stembuds' at Handshake.Sequence._packetToError (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/sequences/Sequence.js:30:14) at Handshake.ErrorPacket (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/sequences/Handshake.js:91:18) at Protocol._parsePacket (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/Protocol.js:202:24) at Parser.write (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/Parser.js:62:12) at Protocol.write (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/Protocol.js:37:16) at Socket.(/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/Connection.js:72:28) at Socket.EventEmitter.emit (events.js:95:17) at Socket. (_stream_readable.js:736:14) at Socket.EventEmitter.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:408:10) -------------------- at Protocol._enqueue (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/Protocol.js:110:26) at Protocol.handshake (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/protocol/Protocol.js:42:41) at Connection.connect (/Users/brandonmoffitt/stembudsnode/node_modules/mysql/lib/Connection.js:98:18) at Object. (/Users/brandonmoffitt/stembudsnode/server.js:16:12) 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 Function.Module.runMain (module.js:497:10) at startup (node.js:119:16)
对不起这篇文章的篇幅,我只是不知道为什么它不起作用.
编辑:
我ssh'ed进入openshift shell来查看mysql设置.当我执行'show grants\g'命令时,这就是我收到的内容:
Grants for adminMYXaSuf@127.11.28.130 GRANT ALL PRIVILEGES ON *.* TO 'adminMYXaSuf'@'127.11.28.130' IDENTIFIED BY PASSWORD '*D0CE5FA2AAD801A33C9190D0B615CC92F364BE6B' WITH GRANT OPTION
此密码与提供的openhift不同.