Проблем mongodb


0

Дава следната грешка, след няколко инсталации все едно и също, трил съм папките data/db след спиране и brew uninstall mongodb (на Mac Os съм), после инсталация и при старт с mongod ето това показва:

I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2015-09-09T11:42:30.612+0300 I CONTROL  [initandlisten] dbexit:  rc: 100

Permission-ите на папка /data/db са: read and write за system само. Имам mongod.lock файл в папка db и ако ги променя той ги връща, немога да го изтрия, дава грешки и пак се появява.

 Ако го пусна с sudo mongod тръгва без проблем, но в последствие не мога да се свържа при: node server.js (дава Server running on port: 3030
Database error: Error: failed to connect to [localhost:27017])

Кода е Ок, от урока mean stack:

server.js

var express = require('express');

var env = process.env.NODE_ENV || 'development';

var app = express();
var config = require('./server/config/config')[env];

require('./server/config/express')(app, config);
require('./server/config/mongoose')(config);
require('./server/config/passport')();
require('./server/config/routes')(app);

app.listen(config.port);
console.log("Server running on port: " + config.port);

config.js

var path = require('path');
var rootPath = path.normalize(__dirname + '/../../')

module.exports = {
development: {
rootPath: rootPath,
db: 'mongodb://localhost/telerikacademycourses',
port: process.env.PORT || 3030
},
production: {
rootPath: rootPath,
db: 'mongodb://admin:dsadsadsadsadsadsadsaewerwewtewfdfsgfsdfdsfefdsgfdhtrytett@ds027328.mongolab.com:27328/telerikacademycourses',
port: process.env.PORT || 3030
}
}

mongoose.js

var mongoose = require('mongoose'),
user = require('../models/User'),
course = require('../models/Course');

module.exports = function(config) {
mongoose.connect(config.db);
var db = mongoose.connection;

db.once('open', function(err) {
if (err) {
console.log('Database could not be opened: ' + err);
return;
}

console.log('Database up and running...')
});

db.on('error', function(err){
console.log('Database error: ' + err);
});

user.seedInitialUsers();
course.seedInitialCourses();
};




Отговори



0

Привет, 

нe съм на Мас, но няколко въпроса: 
- от къде отваряш конзолата, в която пишеш mongod? (при мен е от директорията bin някъде из  директорията, в която е инсталиранa MongoDB);
- задавал ли си някога след mongod следното:  mongod db --path [път до папка, в която искаш да се съхваняват данните] ?


Иначе на мен ми показваше подобен проблем и.. просто съзададох папката, която търсеше на мястото, където я търсеше (в моя случай С:\data\db) и всичко си тръгна :D




1

Здравей, отварям терминал от папка bin разбира се там е монгото. При Mac се инсталира с Homebrew:
Направил съм:

brew install mongodb     после

sudo mkdir -p /data/db

и съответно я прави винаги в root-а на usera на компа (не му се задава път, то си знае само гадинчето).

Отварям, затварям монгото както трябва, но то .. Защо ми прецаква работите и този  lock file дето ако го махна и преинсталирам монгото на ново пак се появява и по гадно става че съм го изтрил


от inxs777 (62 точки)


0

If you do not use the default data directory (i.e., /data/db), specify the path to the data directory using the --dbpath option:

mongod --dbpath <path to data directory>
Аз съм си специализирала пътя по други причини, но принципно можеш да пробваш и ти да го промениш. Би трябвало да си създаде mongod.lock и да не плаче повече. И естествено да си промениш пътя до локалната база в кода, с този който си задал след --dbpath. От не много опит с монго.. всеки ерор се оправя с тъп хак (e.g. пращане на mongod.lock от други хора със същия проект, създаване на празни директории и подобни не особено интелигентни неща, но пък работят и дори в стека други решения не съм  срещала. За съжаление без особени обяснения защо има проблем, след като би следвало да няма ). 

Поздрави и пиши как си го оправил, ще е полезно :)


0

Пътя на папка data/db опитах след нова инсталация, но дава грешки, трябва нещо с brew да е май..

Благодаря все пак, ще напиша ако има развитие

от inxs777 (62 точки)