Hace algún tiempo escribí una publicación sobre cómo instalar MongoDB en Mac OS X. Sin embargo, la mayoría del desarrollo suele ocurrir en máquinas Unix/Linux. Así que hoy veremos cómo instalar MongoDB en un sistema Linux.
Instalar MongoDB en Linux
La versión actual de MongoDB es 3.4.7 y estaré instalando la versión de 64 bits a través de la línea de comandos. Los pasos para instalar MongoDB en Linux son muy simples, simplemente sigue los siguientes comandos de terminal para descargar e instalar.
- Descarga y extrae los binarios de MongoDB
root@dev [/home/journal]# mkdir mongodb
root@dev [/home/journal]# cd mongodb/
root@dev [/home/journal/mongodb]# curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.7.tgz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 82.7M 100 82.7M 0 0 1704k 0 0:00:49 0:00:49 --:--:-- 1334k
root@dev [/home/journal/mongodb]# tar xvf mongodb-linux-x86_64-3.4.7.tgz
mongodb-linux-x86_64-3.4.7/README
mongodb-linux-x86_64-3.4.7/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-3.4.7/MPL-2
mongodb-linux-x86_64-3.4.7/GNU-AGPL-3.0
mongodb-linux-x86_64-3.4.7/bin/mongodump
mongodb-linux-x86_64-3.4.7/bin/mongorestore
mongodb-linux-x86_64-3.4.7/bin/mongoexport
mongodb-linux-x86_64-3.4.7/bin/mongoimport
mongodb-linux-x86_64-3.4.7/bin/mongostat
mongodb-linux-x86_64-3.4.7/bin/mongotop
mongodb-linux-x86_64-3.4.7/bin/bsondump
mongodb-linux-x86_64-3.4.7/bin/mongofiles
mongodb-linux-x86_64-3.4.7/bin/mongooplog
mongodb-linux-x86_64-3.4.7/bin/mongoreplay
mongodb-linux-x86_64-3.4.7/bin/mongoperf
mongodb-linux-x86_64-3.4.7/bin/mongod
mongodb-linux-x86_64-3.4.7/bin/mongos
mongodb-linux-x86_64-3.4.7/bin/mongo
- Agrega el directorio bin de MongoDB a la variable PATH
root@dev [/home/journal/mongodb]# mv mongodb-linux-x86_64-3.4.7 mongodb
root@dev [/home/journal/mongodb]# cd mongodb
root@dev [/home/journal/mongodb/mongodb]# echo $PATH
/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin
root@dev [/home/journal/mongodb/mongodb]# export PATH=$PATH:/home/journal/mongodb/mongodb/bin
- Crea un directorio para los archivos de MongoDB y arráncalo
root@dev [/home/journal/mongodb/mongodb]# mkdir data
root@dev [/home/journal/mongodb/mongodb]# cd bin
root@dev [/home/journal/mongodb/mongodb/bin]# ./mongod --dbpath /home/journal/mongodb/mongodb/data &
[1] 30387
root@dev [/home/journal/mongodb/mongodb/bin]# 2014-08-04T13:56:05.916+0000 [initandlisten] MongoDB starting : pid=30387 port=27017 dbpath=/home/journal/mongodb/mongodb/data 64-bit host=dev.journaldev.com
2014-08-04T13:56:05.917+0000 [initandlisten] db version v3.4.7
2014-08-04T13:56:05.917+0000 [initandlisten] git version: 255f67a66f9603c59380b2a389e386910bbb52cb
2014-08-04T13:56:05.917+0000 [initandlisten] build info: Linux build12.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2014-08-04T13:56:05.917+0000 [initandlisten] allocator: tcmalloc
2014-08-04T13:56:05.917+0000 [initandlisten] options: { storage: { dbPath: "/home/journal/mongodb/mongodb/data" } }
2014-08-04T13:56:05.922+0000 [initandlisten] journal dir=/home/journal/mongodb/mongodb/data/journal
2014-08-04T13:56:05.922+0000 [initandlisten] recover : no journal files present, no recovery needed
2014-08-04T13:56:06.064+0000 [FileAllocator] allocating new datafile /home/journal/mongodb/mongodb/data/local.ns, filling with zeroes...
2014-08-04T13:56:06.064+0000 [FileAllocator] creating directory /home/journal/mongodb/mongodb/data/_tmp
2014-08-04T13:56:06.067+0000 [FileAllocator] done allocating datafile /home/journal/mongodb/mongodb/data/local.ns, size: 16MB, took 0.001 secs
2014-08-04T13:56:06.069+0000 [FileAllocator] allocating new datafile /home/journal/mongodb/mongodb/data/local.0, filling with zeroes...
2014-08-04T13:56:06.070+0000 [FileAllocator] done allocating datafile /home/journal/mongodb/mongodb/data/local.0, size: 64MB, took 0.001 secs
2014-08-04T13:56:06.071+0000 [initandlisten] build index on: local.startup_log properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "local.startup_log" }
2014-08-04T13:56:06.071+0000 [initandlisten] added index to empty collection
2014-08-04T13:56:06.071+0000 [initandlisten] waiting for connections on port 27017
- Usa el comando “ps” para confirmar que MongoDB está en ejecución
root@dev [/home/journal/mongodb/mongodb/bin]#
root@dev [/home/journal/mongodb/mongodb/bin]# ps -eaf | grep mongo
root 7199 28009 0 14:09 pts/0 00:00:00 grep mongo
root 30387 28009 0 13:56 pts/0 00:00:02 ./mongod --dbpath /home/journal/mongodb/mongodb/data
root@dev [/home/journal/mongodb/mongodb/bin]#
Eso es todo, nuestro MongoDB está instalado en la máquina Linux y funciona correctamente. Sin embargo, es posible que desees exportar el PATH a través de tu perfil de usuario, es decir, .bash_profile o .profile, para que no se pierda una vez que salgas de la terminal.
Ejecutar comandos de MongoDB
Ahora conectémonos a MongoDB y ejecutemos algunos comandos de mongodb para asegurarnos de que esté funcionando bien.
root@dev [~]# cd /home/journal/mongodb/mongodb/bin/
root@dev [/home/journal/mongodb/mongodb/bin]# ./mongo
MongoDB shell version: 3.4.7
connecting to: test
> show dbs
admin (empty)
local 0.078GB
> use journaldev
switched to db journaldev
> db.names.save({"id":123,"name":"Pankaj"})
WriteResult({ "nInserted" : 1 })
> db.names.find()
{ "_id" : ObjectId("53df918adbef24e88560fa5b"), "id" : 123, "name" : "Pankaj" }
> db.datas.save({})
WriteResult({ "nInserted" : 1 })
> show collections
datas
names
system.indexes
> show dbs
admin (empty)
journaldev 0.078GB
local 0.078GB
> exit
bye
root@dev [/home/journal/mongodb/mongodb/bin]#
Como puedes ver, todo parece estar funcionando sin problemas y puedo guardar y recuperar datos de la base de datos MongoDB. Si sales del terminal desde el cual se inició MongoDB, se detendrá. Utiliza el comando nohup
para iniciarlo, de modo que no se detenga incluso después de que cierres el terminal. Página de descarga de MongoDB
Source:
https://www.digitalocean.com/community/tutorials/install-mongodb-linux