mongodb - puerto - No se pudo conectar al servidor 127.0.0.1:27017
no puedo conectarme a mongodb (21)
Me aparece el siguiente error:
alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn''t connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$
Esto es lo que sucede cuando intento comenzar mongodb:
* Starting database mongodb [fail]
Ya probé mongo --repair
Hice chown y chmod para var, lib, y data / db y log mongodb.
No estoy seguro de qué más hacer. ¿Alguna sugerencia?
mongodb.log:
***** SERVER RESTARTED *****
Thu Oct 11 08:29:40
Thu Oct 11 08:29:40 warning: 32-bit servers don''t have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten]
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] ** with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten]
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit:
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now
EDITAR:
Quité el bloqueo y luego hice la reparación mongod y obtuve este error:
Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
así que lo hice con sudo:
alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42
Thu Oct 11 12:05:42 warning: 32-bit servers don''t have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten]
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] ** with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten]
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit:
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now
Pero aún teniendo el mismo problema.
¿ mongod
antes de correr mongo
?
Seguí las instrucciones de instalación para mongodb desde http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ y tuve el mismo error que solo cuando ejecuté mongo
antes de ejecutar realmente el proceso mongo con mongod
Pensé que la instalación de mongodb también lo lanzaría, pero debe iniciarlo manualmente con mongod
antes de hacer cualquier otra cosa que necesite mongodb.
Agregar el bin a PATH en variables de entorno ayudó.
Ruta de instalación de GOTO y copia el ../bin a las variables PATH en variables de entorno en Windows
Aunque se reciben las respuestas, me gustaría hablar sobre los errores de red en MongoDB
.
Establecer las inquietudes de escritura segura no es el método de prueba completo para garantizar que estamos seguros. Supongamos que w=1
& j=true
están configurados, ¿qué j=true
si el acuse de recibo de escritura no se recibió del servidor? Bueno, la probabilidad es que no sucedió, pero podría haber sucedido. La razón por la que esto podría haber sucedido es que hay errores de red; hay razones por las que no podemos recibir una respuesta afirmativa. Por lo tanto, podemos enviar la solicitud desde la aplicación a través de un controlador del idioma de su elección. mongod
puede completarlo con éxito y luego puede haber un restablecimiento de TCP, y la red puede restablecerse de una manera que nunca recibamos respuesta. Entonces, podríamos obtener un error y en el error, podríamos suponer que obtuvimos un error. No sucedió, pero puede suceder.
Para un inserto, es posible evitarlo. Es posible porque si dejamos que el controlador cree el _id
y hacemos un inserto, entonces podríamos insertarlo varias veces y sería dañino. Porque, si lo hacemos por primera vez y obtenemos un error y no estamos seguros de si el inserto se completó o no porque es un error de red, entonces podríamos hacerlo de nuevo. Y siempre que lo ejecutemos de nuevo, tyr lo ejecute con el _id
exacto. El peor de los casos es que obtendremos un error de clave duplicada cuando intentemos insertarlo.
Sin embargo, una actualización es donde ocurre el problema. Especialmente, la actualización que no es un elemento potente, que por ejemplo incluye un comando $ink
. Entonces, le estamos diciendo a la base de datos que incremente un cierto campo. Bueno, en ese caso, si obtenemos un error de red y no sabemos si la actualización ocurrió o no. Ahora, tal vez sepamos lo suficiente acerca de los valores que podemos verificar con ellos que ocurrió la actualización, lo cual está bien. Pero si no conocemos el valor de inicio en la base de datos para ese campo, entonces no nos es posible saber si ocurrió o no en caso de error de red. Este tipo de problemas son extremadamente raros con una red fina.
Y si realmente tenemos que evitarlo a toda costa, lo que tenemos que hacer es activar todas las actualizaciones en insertos, al leer todo el valor del documento fuera de la base de datos y luego eliminarlo e insertarlo de nuevo o simplemente insertarlo uno nuevo.
Las razones por las cuales una aplicación puede recibir un error incluso si la escritura fue exitosa:
- La conexión TCP de red entre la aplicación y el servidor se restableció después de que el servidor recibió una escritura, pero antes de que se pudiera enviar una respuesta.
- El servidor
MongoDB
finaliza entre recibir la escritura y responder a ella. - La red falla entre el momento de la escritura y el momento en que el cliente recibe una respuesta a la escritura.
Compruebe el espacio libre del sistema de archivos y auméntelo si es menor. Esto también podría hacer que el mongo no comience. Compruebe el archivo /var/log/mongodb/mongodb.log.
ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
Después de eliminar mongod.lock que estaba dentro del directorio de datos en mi sistema operativo Windows, aún mostraba el mismo mensaje de error. Tuve que ejecutar mongod con --dbpath para hacer que el comando mongo se ejecutara sin errores.
Después de un intento frecuente finalmente tengo que solucionar el problema ...
Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo
El registro indica que mongodb está terminando porque hay un archivo de bloqueo antiguo.
Si no está ejecutando el diario y no lo está ejecutando, elimine el archivo de bloqueo, ejecute la reparación y vuelva a iniciar mongodb.
Si está encendido o estaba ejecutando el registro por diario, consulte los documentos de Mongo DB pertinentes . Tenga en cuenta que dicen "Si está ejecutando Journaling, no debe reparar para recuperar un estado coherente". Entonces, si escribía un diario, la reparación puede haber empeorado las cosas.
En windows ejecute cmd como administrador:
Crear directorio:
mkdir c: / mongo / data / db
Instalar servicio:
mongod.exe --install --logpath c: / mongo / logs --logappend --bind_ip 127.0.0.1 --dbpath c: / mongo / data / db --directoryperdb
Inicie MongoDB:
net start MongoDB
4. Inicie Mongo Shell:
c:/mongo/bin/mongo.exe
Esta solución funciona bien para mí
Este error podría deberse a la configuración IP del enlace de MongoDB. Puede verificar el archivo de configuración de MongoDB
$ sudo vi /etc/mongodb.conf
En mi caso, la IP de enlace se establece en la dirección de intranet del servidor, tal como se muestra a continuación:
bind_ip = 10.10.1.14
#port = 27017
Así que le he dado a mongo un parámetro de IP para conectarse a shell por tipo:
$ mongo 10.10.1.14
No olvide reiniciar el servicio de mongodb si cambió la configuración.
Esto es porque el proceso de mongod está inactivo, debes ejecutar los comandos a continuación para iniciar el proceso de mongod:
sudo service mongodb stop
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair --dbpath /var/lib/mongodb
sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb
sudo service mongodb start
Espero que esto te ayude.
Esto funcionó para mí:
sudo rm /var/lib/mongodb/mongod.lock
sudo service mongodb restart
Intenta ejecutar mongod
antes de mongo
.
sudo /usr/sbin/mongod
en mi opensuse
Esto resolvió mi problema,
Jue 11 de Oct. 12:05:42 [initandlisten] No se pueden verificar los archivos de diario debido a: boost :: filesystem:: basic_directory_iterator constructor: Ningún archivo o directorio: "/ data / db / journal" Jue 11 Oct 12:05: 42 [initandlisten] terminado de verificar dbs
Esta línea no contiene ningún archivo o directorio así que crea la carpeta / data / db en la raíz y prueba con "mongod" Espero que esto funcione
Para referencia futura, siga estos pasos para evitar errores similares:
1. Descargar MondoDB https://www.mongodb.com/
2. Abre una terminal y un CD en tu carpeta de descargas o en la carpeta donde hayas guardado la descarga de mondodb (asegúrate de extraer la carpeta mongodb antes de hacer clic en ella)
cd Downloads
3.Mueva mongodb a su ruta usr / local
sudo mv mongodb-osx-... /usr/local/mongodb
4.cd en su carpeta local
cd /usr/local/mongodb
5. hacer un nuevo directorio
sudo mkdir -p /data/db
6.cd en el nuevo directorio recién creado arriba
cd /data/db
7. dar permisos de mongo
sudo chown YourMacUserName /data/db
8. Luego ve / abre tu .bash_profile
Para hacerlo, sigue estos pasos:
En tu una nueva terminal
1 . cd
2 .pwd
3 . ls -l
Compruebe si .bash_profile aparece en su lista de archivos en su terminal
si no, crea el -bash_profile
Creando .bash_profile:
En tu terminal
toca .bash_profile
// omita este paso si ya tiene un .bash_profile
Paso 8:
Siguiente en tu terminal:
open .bash_profile
Y en su archivo bash que se abre, agregue lo siguiente:
MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin
Y luego guardar . (Archivo Guardar o comando S / CMD + S)
Paso 9: vuelve a tu terminal :
source .bash_profile
Ahora abre dos terminales . Uno para tu mondo daemon el otro para tu mongo .
Terminal 1: en tu tipo de terminal: mongod
mongodb
Terminal 2:
mongo
Además, asegúrese de no cometer el siguiente error de error al iniciar su mongod en su terminal: Esto es incorrecto
mongo d
emite el siguiente error : No se pudo conectar a 127.0.0.1:27017, en (comprobando el socket después del sondeo), razón: Conexión rechazada
Esto es correcto:
mongod
(No debe haber espacio entre las palabras mongo y d .. mondod
Finalmente, siempre tenga en cuenta que debe ejecutar mondod antes de ejecutar mongo en sus terminales .
Puede consultar con netstat -anp | grep 27017
netstat -anp | grep 27017
para ver si el puerto está siendo utilizado por otro proceso.
Seguí el documento en http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ .
Después de configurar y reiniciar, sudo service mongod start
y obtuve ... [FAILED]
.
Por fin, descubrí que mongod
había comenzado. Creo que la yum install
agregó al inicio automático.
Para verificar si su mongod
está ejecutando: service mongod status
.
Espero que esto pueda ayudar a alguien a tener el mismo problema.
Tengo mongo versión 3.2.1 y tuve que eliminar el archivo de bloqueo de /data/db/
y después de esto, ejecuté mongod
y comenzó correctamente.
>rm /data/db/mongod.lock
>mongod
Tratar
sudo service mongodb start
Esto resolvió mi problema.
así que primero tienes que eliminar el archivo mongod.lock por debajo del comando
sudo rm /var/lib/mongodb/mongod.lock
y luego reinicie el servicio mongo emitiendo un comando debajo
sudo service mongod restart
escriba windows + r e ingrese lo siguiente
services.msc
iniciar MongoDB
ahora escriba "mongo" en cmd en la ruta respectiva donde mongo.exe está presente, comenzará a funcionar.
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock
Step 2: Repair mongodb.
sudo mongod --repair
Step 3: start mongodb.
sudo start mongodb
or
sudo service mongodb start
Step 4: Check status of mongodb.
sudo status mongodb
or
sudo service mongodb status
Step 5: Start mongo console.
mongo