Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Batista Neto

Instalando MongoDB no Linux

Recommended Posts

Bom, para aqueles que vão começar a brincar com o MongoDB, vão precisar instalá-lo antes de poder seguir as dicas do @Suissa para fazer o Backup do seu MongoDB.

 

Então, claro, precisamos baixá-lo antes http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://www.mongodb.org/downloads

 

[neto@localhost opt]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.1.tgz
--2010-08-21 09:21:00-- http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.1.tgz
Resolvendo fastdl.mongodb.org... 204.246.169.227, 204.246.169.34, 204.246.169.29, ...
Conectando-se a fastdl.mongodb.org|204.246.169.227|:80... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 25159934 (24M) [application/x-tar]
Salvando em: "mongodb-linux-x86_64-1.6.1.tgz"

100%[==========================================================================>] 25.159.934 112K/s em 2m 28s

2010-08-21 09:23:31 (166 KB/s) - "mongodb-linux-x86_64-1.6.1.tgz" salvo [25159934/25159934]

Com o arquivo em mãos, descompactamos-o:

 

[neto@localhost opt]# tar -zxvf mongodb-linux-x86_64-1.6.1.tgz
mongodb-linux-x86_64-1.6.1/
mongodb-linux-x86_64-1.6.1/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-1.6.1/GNU-AGPL-3.0
mongodb-linux-x86_64-1.6.1/README
mongodb-linux-x86_64-1.6.1/bin/
mongodb-linux-x86_64-1.6.1/bin/mongo
mongodb-linux-x86_64-1.6.1/bin/mongos
mongodb-linux-x86_64-1.6.1/bin/mongodump
mongodb-linux-x86_64-1.6.1/bin/mongostat
mongodb-linux-x86_64-1.6.1/bin/mongofiles
mongodb-linux-x86_64-1.6.1/bin/mongoimport
mongodb-linux-x86_64-1.6.1/bin/mongosniff
mongodb-linux-x86_64-1.6.1/bin/mongorestore
mongodb-linux-x86_64-1.6.1/bin/mongod
mongodb-linux-x86_64-1.6.1/bin/bsondump
mongodb-linux-x86_64-1.6.1/bin/mongoexport

E, apenas para facilitar o acesso, criamos um link simbólico:

 

[neto@localhost opt]# ln -s mongodb-linux-x86_64-1.6.1 mongodb

Ok, se entramos no diretório mongodb, teremos o seguinte:

 

[neto@localhost opt]# cd mongodb
[neto@localhost mongodb]# find .
.
./README
./THIRD-PARTY-NOTICES
./GNU-AGPL-3.0
./bin
./bin/mongodump
./bin/mongofiles
./bin/mongoexport
./bin/mongos
./bin/mongoimport
./bin/mongo
./bin/bsondump
./bin/mongorestore
./bin/mongostat
./bin/mongosniff
./bin/mongod

Como pode ser visto, o diretório bin contém todos os binários do MongoDB.

 

Entre os vários binários, temos um que vamos utilizar agora:

 

./bin/mongod http://forum.imasters.com.br/public/style_emoticons/default/seta.gif O d no final, indica daemon

 

Para iniciar e parar o MongoDB, vamos criar um script para facilitar as coisas:

 

[neto@localhost mongodb]# vim /opt/mongodb/mongod

Colocamos o código abaixo no script:

 

#!/bin/bash

prog=mongod

start() {
	echo -n $"iniciando $prog..."
	/opt/mongodb/bin/mongod --quiet --config /etc/mongod.conf
}

stop() {
	echo -n $"parando $prog..."
	pid=`ps -o pid,command ax | grep mongod | awk '!/awk/ && !/grep/ {print $1}'`;
 
	if [ "${pid}" != "" ]; then
		kill -2 ${pid};
	fi
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	*)
		echo $"Use: $prog {start|stop}"
		;;
esac

E damos permissões de execução:

 

[neto@localhost mongodb]# chmod +x mongod

Como pode ser notado, na função start(), usamos um arquivo de configuração (/etc/mongod.conf)

 

Precisamos criá-lo:

 

[neto@localhost mongodb]$ su
Senha:
[root@localhost mongodb]# vim /etc/mongod.conf

Nesse arquivo de configuração, colocamos o seguinte:

 

dbpath = /var/lib/mongodb
logpath = /var/lib/mongodb/mongodb.log
logappend = true

bind_ip = 127.0.0.1
port = 27017
fork = true

auth = true

Novamente, podemos notar dois caminhos, dbpath e logpath, vamos precisar criá-los:

 

[root@localhost mongodb]# mkdir /var/lib/mongodb/
[root@localhost mongodb]# touch /var/lib/mongodb/mongodb.log

Pronto, temos o script de inicialização e configuração, podemos iniciar nosso MongoDB:

 

[root@localhost mongodb]# /opt/mongodb/mongod start
iniciando mongod...forked process: 9587
all output going to: /var/lib/mongodb/mongodb.log

:D

 

Para maiores informações sobre as configurações http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://www.mongodb.org/display/DOCS/Command+Line+Parameters

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso você use MAC deve fazer o mesmo procedimento que vai funcionar perfeitamente.

 

O MAC como o Linux tem alguns gerenciador de pacote o PORT e BREW, caso queira instalar por eles é super simples, veja abaixo:

 

PORT:

$ sudo port install mongodb

BREW

$ brew install mongodb

 

 

Mais informações sobre como instalar MongoDB no MAC: http://www.mongodb.org/display/DOCS/Quickstart+OS+X

 

 

@mongodb

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para quem vai usar o Mongo com PHP e já seguiu os passos para instalar o Driver PHP e utiliza Eclipse como IDE, pode baixar o phpdoc de todas as classes em http://mongo.improje...r/phpdoc.tar.gz

 

Utilizei exatamente o conteúdo do manual do PHP para comentar as classes, porém é muito útil para quem ainda não conhece todos os métodos e retorno de cada um ou apenas gosta da completação automática provida pelo IDE.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

se eu instalando o mongoDB não vai ocasionar algum conflito ?

 

Não deve causar qualquer conflito, André.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só pra deixar claro aqui, voltei a usar mongodb, porem para as versões 32 bits baixadas via sudo, ele não cria a pasta /data/db ..

então, provavelmente, quando vocês iniciarem o processo mongod, pra registrar o mongodb ao serviço, vai dar o seguinte erro:

andrey@andrey:~$ sudo su
root@andrey:/# cd ~
root@andrey:~# cd /usr/lib/mongodb
root@andrey:/usr/lib/mongodb# ls
mongo   mongodump    mongofiles   mongorestore  mongostat
mongod  mongoexport  mongoimport  mongos        xulwrapper
root@andrey:/usr/lib/mongodb# mongod
/usr/lib/mongodb/mongod --help for help and startup options
Fri Jul 15 12:44:34 Mongo DB : starting : pid = 26078 port = 27017 dbpath = /data/db/ master = 0 slave = 0  32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations for more

Fri Jul 15 12:44:34 Assertion: 10296:dbpath (/data/db/) does not exist
0x810a8f2 0x8284c5c 0x8284d6c 0x8287f92 0xd09ce7 0x80bd301 
/usr/lib/mongodb/mongod(_ZN5mongo11msgassertedEiPKc+0x2b2) [0x810a8f2]
/usr/lib/mongodb/mongod(_ZN5mongo14_initAndListenEiPKc+0x108c) [0x8284c5c]
/usr/lib/mongodb/mongod(_ZN5mongo13initAndListenEiPKc+0x2c) [0x8284d6c]
/usr/lib/mongodb/mongod(main+0x3092) [0x8287f92]
/lib/libc.so.6(__libc_start_main+0xe7) [0xd09ce7]
/usr/lib/mongodb/mongod() [0x80bd301]
Fri Jul 15 12:44:34   exception in initAndListen std::exception: dbpath (/data/db/) does not exist, terminating
Fri Jul 15 12:44:34  dbexit: 
Fri Jul 15 12:44:34 	 shutdown: going to close listening sockets...
Fri Jul 15 12:44:34 	 shutdown: going to flush oplog...
Fri Jul 15 12:44:34 	 shutdown: going to close sockets...
Fri Jul 15 12:44:34 	 shutdown: waiting for fs preallocator...
Fri Jul 15 12:44:34 	 shutdown: closing all files...
Fri Jul 15 12:44:34      closeAllFiles() finished
Fri Jul 15 12:44:34  dbexit: really exiting now
root@andrey:/usr/lib/mongodb# 

 

Percebam que tem um erro, informando que a pasta data, data/db não existe, então vamos cria-la:

root@andrey:/usr/lib/mongodb# cd ..
root@andrey:/usr/lib# mkdir /data
root@andrey:/usr/lib# mkdir /data/db
root@andrey:/usr/lib# cd mongodb
root@andrey:/usr/lib/mongodb# mongod
/usr/lib/mongodb/mongod --help for help and startup options
Fri Jul 15 12:46:19 Mongo DB : starting : pid = 26102 port = 27017 dbpath = /data/db/ master = 0 slave = 0  32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations for more

Fri Jul 15 12:46:19 db version v1.4.4, pdfile version 4.5
Fri Jul 15 12:46:19 git version: nogitversion
Fri Jul 15 12:46:19 sys info: Linux roseapple 2.6.24-28-server #1 SMP Wed Aug 18 21:17:51 UTC 2010 i686 BOOST_LIB_VERSION=1_42
Fri Jul 15 12:46:19 waiting for connections on port 27017
Fri Jul 15 12:46:19 listen(): bind() failed errno:98 Address already in use for port: 27017
Fri Jul 15 12:46:19 MiniWebServer: bind() failed port:28017 errno:98 Address already in use
Fri Jul 15 12:46:19   addr already in use
Fri Jul 15 12:46:19 warning: web admin interface failed to initialize on port 28017

 

No caso, pra verificar se o serviço está mesmo rodando:

andrey@andrey:~$ GET 127.0.0.1:27017 -U
GET http://127.0.0.1:27017
User-Agent: lwp-request/5.834 libwww-perl/5.836
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number

andrey@andrey:/usr/lib/mongodb$ mongo
MongoDB shell version: 1.4.4
url: test
connecting to: test
type "exit" to exit
type "help" for help
> 

 

Pra instalar via sudo:

sudo apt-get install mongodb

Voilà

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOA! :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jean, postei também um tutorial na área de PHP, que também é uma das mais movimentadas aqui do fórum, de como instalar o MongoDB juntamente com as extensões necessárias ou 'a' extensão necessária para utilizar o objeto Mongo do PHP.

 

Segue o link :seta: http://forum.imasters.com.br/topic/438919-instalando-mongodb-com-php/

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.