我正在尝试使用MySQL
服务器连接到OpenShift中的Node JS
数据库。
我有一个错误:
Error: connect ECONNREFUSED 127.0.0.1:3306
at Object.exports._errnoException (util.js:870:11)
at exports._exceptionWithHostPort (util.js:893:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1057:14)
--------------------
at Protocol._enqueue (D:\nodejs\node_modules\mysql\lib\protocol\Protocol.js:141:48)
at Protocol.handshake (D:\nodejs\node_modules\mysql\lib\protocol\Protocol.js:52:41)
at Connection.connect (D:\nodejs\node_modules\mysql\lib\Connection.js:123:18)
at Object.<anonymous> (D:\nodejs\server.js:17:12)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
这是我的代码:
var connection = mysql.createConnection({
host : process.env.OPENSHIFT_MYSQL_DB_HOST,
user : process.env.OPENSHIFT_MYSQL_DB_USERNAME,
password : process.env.OPENSHIFT_MYSQL_DB_PASSWORD,
port : process.env.OPENSHIFT_MYSQL_DB_PORT,
database : process.env.OPENSHIFT_APP_NAME
});
connection.connect(function(err){
if (err) {throw err;}
});
我读了很多关于这个错误,但我找不到解决方案。 我可以使用ssh连接到MySQL,我也可以检查这些环境变量。
HOST为127.9.156.2
,NODEJS_IP为127.9.156.1
。港口是3306。
通行证和用户也可以。
哪里有问题?
答案 0 :(得分:0)
这很可能是由两个不同的问题引起的。其中之一是端口错误或MySQL实例正在尝试连接到已经忙碌的端口。如果这是造成它的原因,你需要改变它。
另一个问题是更可能是默认情况下MySQL只允许127.0.0.1连接。您必须进入MySQL的配置文件并将其设置为允许其他主机连接,这里是他们的文档链接,如何执行此操作。 http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_bind-address。