Publicidade

João Batista Neto

Instalando MongoDB no Linux

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

Editado por Mário Monteiro
0

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

0

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.

 

;)

Editado por Mário Monteiro
0

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à

 

;)

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOA! :joia:

0

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/

;)

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora

  • Próximos Eventos

    • 0
      22 fevereiro 2017 22:00
      Até
      23 fevereiro 2017 01:30