2011-12-12 8 views
16

Ho avuto un arresto non pulito di MongoDB su Ubuntu 10.04 LTS. Ora, quando faccio il login come root ed eseguire MongoDB tramite il servizio MongoDB iniziare, ho seguito degli erroriMongoDB - Autorizzazione negata per il socket: /tmp/mongodb-27017.sock

Mon Dec 12 13:53:15 [initandlisten] ERROR: listen(): bind() failed errno:13 Permission denied for socket: /tmp/mongodb-27017.sock 

Quando eseguo manualmente MongoDB via principale, funziona bene.

posso confermare che non esiste alcun file /tmp/mongodb-27017.sock

[email protected]:~# ll /tmp/ 
total 16 
drwxr-xr-x 4 root root 4096 2011-12-12 13:53 ./ 
drwxr-xr-x 25 root root 4096 2011-12-11 13:06 ../ 
drwxrwxrwt 2 root root 4096 2011-12-12 13:01 .ICE-unix/ 
drwxrwxrwt 2 root root 4096 2011-12-12 13:01 .X11-unix/ 

dove comincio la risoluzione dei problemi?

risposta

16

Quali sono i permessi dei file su/tmp? È possibile che siano stati cambiati?

Un

# ls -ld /tmp 

vi dirà.

Se siete incerti prova:

# chown root:root /tmp 
# chmod 1777 /tmp 

che potrebbe risolvere il problema.

+0

Hai ragione, dopo l'arresto non pulito, si sono incasinati e/tmp non era più in grado di scrivere da parte dell'utente MongoDb. – user837208

+0

Grande. Sono felice di averti trovato una risposta. –

+0

Mi hai salvato la giornata. Grazie! –

0

Assicurarsi che l'utente di Ubuntu mongo abbia accesso al file. Il servizio Mongo Ubuntu utilizza l'utente Ubuntu Mongo. Per scoprire il nome utente di mongo, vai alla directory/var/lib/mongodb e mostra i permessi: ls -l

+0

'root @ devbox: ~ # ls -l/var/lib/mongodb totale 4 drwxr-xr-x 2 MongoDB MongoDB 4096 2011-12-12 13:53 rivista -rwxr-xr-x 1 mongodb mongodb 0 2011-12-12 13:53 mongod.lock' – user837208

17

Provare a cambiare proprietario come questo,

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock 
+0

Questo risolve il mio problema! Grazie –

+0

Grazie a Dio finalmente ha funzionato !! Grazie! È strano perché '/ tmp' aveva l'autorizzazione' rwx' per tutti e tre, ma l'operazione non era permessa finché non ho provato il tuo esempio. – spicypumpkin

0

Ho lo stesso problema, perché ho l'uso mongodb run da root, inizierà esito negativo con systemctl su CentOS 7.3.

Si prega di utilizzare l'autorizzazione corretta per mongodb. $ sudo chown -R mongod:mongod \ /var/run/mongodb/mongod.pid \ /tmp/mongodb-27017.sock \ /var/lib/mongo/

Se abbiamo altra riusciamo come Error reading file /path/file: Permission denied, forse possiamo risolvere il problema da SELinux. $ sudo chcon -v -t mongod_var_lib_t /path/file

A proposito, non consiglio di usare il permesso 777, è così pericoloso. : P