很抱歉打扰你,但我现在已经挣扎了差不多两个星期并且研究了很多,没有找到任何解决方案:
我正在尝试运行这个git项目< a href="https://github.com/Adrianod/Open-GPS-tracker">open gps tracker </a>
,在本地运行完美但是当我将它部署到开放班次时我得到Error: EACCES
我已经尝试过以下内容:
将server.js
侦听端口从8080更改为打开的班次变量:
var port = process.env.OPENSHIFT_NODEJS_PORT || process.env.OPENSHIFT_INTERNAL_PORT || 8080;
var ipaddr = process.env.OPENSHIFT_NODEJS_IP || process.env.OPENSHIFT_INTERNAL_IP;
var io = require('socket.io').listen(port);
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'myURL',
user : 'Myuser',
password : 'MYpass',
database : 'gpstracks'
});
还尝试按照此处的建议创建一个服务器,以便socket.io
会像这样收听它:
var port = process.env.OPENSHIFT_NODEJS_PORT || process.env.OPENSHIFT_INTERNAL_PORT || 8080;
var ipaddr = process.env.OPENSHIFT_NODEJS_IP || process.env.OPENSHIFT_INTERNAL_IP;
var app = require('http');
var io = require('socket.io').listen(app);
app.createServer().listen(port, ipaddr, function(){
console.log('Express server listening on port ' + port);
});
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'myURL',
user : 'Myuser',
password : 'MYpass',
database : 'gpstracks'
});
当我这样做时,我收到一条不同的错误消息access denied for Myuser@MyURL
然后我尝试更改数据库信息以打开这样的移位变量:
var port = process.env.OPENSHIFT_NODEJS_PORT || process.env.OPENSHIFT_INTERNAL_PORT || 8080;
var ipaddr = process.env.OPENSHIFT_NODEJS_IP || process.env.OPENSHIFT_INTERNAL_IP;
var app = require('http');
var io = require('socket.io').listen(app);
app.createServer().listen(port, ipaddr, function(){
console.log('Express server listening on port ' + port);
});
var mysql = require('mysql');
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,
database : process.env.OPENSHIFT_GEAR_NAME
});
但问题仍然存在。
我尝试创建另一个用户并授予所有权限但仍然收到错误,我还尝试npm install mysql
和socket.io
本地和ssh:app-root / repo但是没有工作。
我可以通过ssh使用我创建的用户和密码登录我的数据库,并且已经检查了权限并且已经全部授予了。不知道还有什么可以做任何帮助的人将不胜感激。
答案 0 :(得分:0)
如果您使用的是缩放应用程序,则还需要包含OPENSHIFT_MYSQL_DB_PORT,因为它不在端口3306上运行
答案 1 :(得分:0)
感谢您的帮助,但事实证明它可能是一个开放的转移错误,因为我尝试了内部变量,它没有工作,当我端口转发,获得IP地址,并包括它作为主机它工作,但它与变量显示的ip相同,端口是相同的,只是插入数字而不是变量。
var port = process.env.OPENSHIFT_NODEJS_PORT || process.env.OPENSHIFT_INTERNAL_PORT || 8080;
var ipaddr = process.env.OPENSHIFT_NODEJS_IP || process.env.OPENSHIFT_INTERNAL_IP;
var app = require('http');
var io = require('socket.io').listen(app);
app.createServer().listen(port, ipaddr, function(){
console.log('Express server listening on port ' + port);
});
var mysql = require('mysql');
var connection = mysql.createConnection({
host : ipFromOpenShift, //rhc port-forward <myapp>
port : 3306,
user : myUser,
password : myPass,
database : myDatabase
});