3 votos

¿Cómo tener dos versiones diferentes de MongoDB instaladas al mismo tiempo?

¿Es posible instalar tanto mongodb 2.6 como 3.2 en el mismo Mac? Llevo un tiempo usando mongodb 3.2 (instalado con homebrew) pero necesitaba instalar la 2.6 para dar soporte a un proyecto más antiguo. He utilizado brew install homebrew/versions/mongodb26 y tengo algunos problemas con archivos conflictivos, que podré solucionar más adelante.

Possible conflicting files are:
/usr/local/bin/bsondump -> /usr/local/Cellar/mongodb/3.2.10/bin/bsondump
/usr/local/bin/mongo -> /usr/local/Cellar/mongodb/3.2.10/bin/mongo
/usr/local/bin/mongod -> /usr/local/Cellar/mongodb/3.2.10/bin/mongod
/usr/local/bin/mongodump -> /usr/local/Cellar/mongodb/3.2.10/bin/mongodump
/usr/local/bin/mongoexport -> /usr/local/Cellar/mongodb/3.2.10/bin/mongoexport
/usr/local/bin/mongofiles -> /usr/local/Cellar/mongodb/3.2.10/bin/mongofiles
/usr/local/bin/mongoimport -> /usr/local/Cellar/mongodb/3.2.10/bin/mongoimport
/usr/local/bin/mongooplog -> /usr/local/Cellar/mongodb/3.2.10/bin/mongooplog
/usr/local/bin/mongoperf -> /usr/local/Cellar/mongodb/3.2.10/bin/mongoperf
/usr/local/bin/mongorestore -> /usr/local/Cellar/mongodb/3.2.10/bin/mongorestore
/usr/local/bin/mongos -> /usr/local/Cellar/mongodb/3.2.10/bin/mongos
/usr/local/bin/mongosniff -> /usr/local/Cellar/mongodb/3.2.10/bin/mongosniff
/usr/local/bin/mongostat -> /usr/local/Cellar/mongodb/3.2.10/bin/mongostat
/usr/local/bin/mongotop -> /usr/local/Cellar/mongodb/3.2.10/bin/mongotop

Pero si intento iniciar mongod, ejecutando /usr/local/Cellar/mongodb/3.2.10/bin/mongod Me sale el error 2016-11-15T14:26:08.132+0000 [initandlisten] exception in initAndListen: 28574 Cannot start server. Detected data files in /data/db created by storage engine 'wiredTiger'. The configured storage engine is 'mmapv1'., terminating .

También he perdido mi base de datos para la 3.2, que parece haber sido sobrescrita al instalar la 2.6.

¿Alguien ha conseguido que esto funcione?

2voto

Sandro Puntos 891

Sé que esta es una pregunta vieja, pero estaba buscando una manera de tener la versión 4.x y 3.x y encontré que esta es la solución más fácil.

Instale las versiones de MongoDB que desee con brew .

Puede encontrar qué versiones están disponibles con brew search mongo . Si no ve la versión que desea, ejecute brew update . Estoy instalando la última versión (4) y la versión 3.6:

brew install mongodb
brew install mongodb@3.6

Inicie la versión que desee con brew service

brew services start mongodb

Cambia de versión:

  1. Asegúrese de que es compatible con las versiones anteriores:

    mongo --eval 'db.adminCommand({setFeatureCompatibilityVersion: "3.6"})'

  2. Stop mongod :

    brew services stop mongodb

  3. Desvincula la versión actual de MongoDB:

    brew unlink mongodb

  4. Vincular la nueva versión de MongoDB:

    brew link --force mongodb@3.6

  5. Inicie la versión 3.6 de MongoDB:

    brew services start mongodb@3.6

  6. Comprueba tu versión:

    mongo --version

0voto

bret7600 Puntos 340

Esto podría ser la necesidad de crear otra carpeta(ex: mongodb2) dbpath para la segunda instancia, y ejecutarlo en diferente puerto(ex: 27018)

mongod --dbpath /usr/local/var/mongodb2 --port 27018

encontrada originalmente en https://stackoverflow.com/questions/15124610/multiple-instances-of-mongo-db-on-same-server

0voto

klanomath Puntos 19587

Es posible instalar mongodb 2.x y 3.x al mismo tiempo - aunque hay que renombrar algunos archivos y carpetas y modificar los archivos config y plist. Esto separará los ejecutables/configuración de MongoDB antiguos de los nuevos y las bases de datos:

  • Desinstalar cualquier instalación de mongodb en brew
  • Versiones de cerveza de grifo con brew tap homebrew/versions
  • Instalar mongodb 2.6.12 con brew install mongodb26
  • Cambie el nombre de todos los catorce enlaces "mongodb26" en /usr/local/bin (por ejemplo, bsondump a bsondump2, mongo a mongo2, etc.)
  • Cambiar el nombre de /usr/local/etc/mongod.conf a /usr/local/etc/mongod2.conf
  • Cambiar el nombre de /usr/local/var/mongodb a /usr/local/var/mongodb2
  • Cambiar el nombre de /usr/local/var/log/mongodb a /usr/local/var/log/mongodb2
  • Modifique /usr/local/etc/mongod2.conf para reflejar los cambios anteriores (ruta y dbpath) y un puerto diferente en la sección de red (por ejemplo, puerto: 37017)
  • Modifique /usr/local/Cellar/mongodb26/2.6.12/homebrew.mxcl.mongodb26.plist para reflejar los cambios anteriores (directorios de registro y archivo de configuración)
  • Instalar mongodb brew install mongodb . Esto es MongoDB 3

MongoDB 3 se instalará con los nombres de archivos y carpetas por defecto entonces. Si MongoDB 2 debe ser su DB Mongo "por defecto", instale primero mongodb y renombre todo a *3 (en lugar de *2). Luego instale mongodb26 con brew.


Dependiendo de sus necesidades copie los plists a su carpeta LaunchAgents, si quiere lanzar cualquiera de las dos versiones de mongodb al iniciar la sesión:

cp /usr/local/Cellar/mongodb26/2.6.12/homebrew.mxcl.mongodb26.plist ~/Library/LaunchAgents/
cp /usr/local/Cellar/mongodb/3.2.10/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/

y cargar ambos plists:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb26.plist 
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist 

Ambos daemons de mongo deberían ejecutarse independientemente el uno del otro al mismo tiempo (al menos en mi VM de pruebas lo hicieron).

Si quieres iniciar cualquiera de los dos mongod manualmente no olvides utilizar el comando mongod renombrado y el archivo de configuración:

mongod2 --config /usr/local/etc/mongod2.conf #mongodb26
mongod --config /usr/local/etc/mongod.conf #mongodb3

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X