GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat MongoDB ze zdroje (a pomocí YUM) na Linuxu

Název MongoDB byl odvozen od Humongo nás DB.

Jedná se o open source NoSQL databázi. MongoDB je vyvíjen a komerčně podporován společností 10gen.

Zaměření MongoDB je na škálovatelnost a výkon. MongoDB je databáze orientovaná na dokumenty bez schémat. To ukládá data jako objekty JSON. Na rozdíl od tradiční SQL databáze nemusíte definovat schéma. Schéma je začleněno do samotného datového dokumentu, takže schéma můžete kdykoli snadno změnit, aniž byste se museli starat o změnu kteréhokoli z předchozích načtených dokumentů. Vysoký výkon a škálovatelnost jsou možné, protože v MongoDB nejsou prováděna žádná spojení a žádné transakce s více dokumenty. To také zajišťuje replikaci mezi servery s možností automatického převzetí služeb při selhání. Pro vysokou dostupnost můžete také škálovat napříč servery.

Tento článek je 1. částí ze série článků o MongoDB.

Nainstalujte MongoDB pomocí YUM

Instalace MongoDB pomocí yum je poměrně přímočará.

Nastavení úložiště 10gen Yum

Nejprve do svého yum přidejte úložiště 10gen, jak je znázorněno níže.

# vi /etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1

Poznámka:Výše ​​uvedené platí pro 64bitový systém. Pokud používáte 32bitový systém, nasměrujte baseurl ve výše uvedeném souboru na http://downloads-distro.mongodb.org/repo/redhat/os/i686

Nyní spusťte „yum info“ pro zobrazení balíčků mongo-10gen a mongo-10gen-server.

# yum info mongo-10gen
Name        : mongo-10gen
Arch        : x86_64
Version     : 2.2.2
Release     : mongodb_1
Size        : 43 M
Repo        : 10gen
Summary     : mongo client shell and tools
URL         : http://www.mongodb.org
License     : AGPL 3.0

# yum info mongo-10gen-server
Name        : mongo-10gen-server
Arch        : x86_64
Version     : 2.2.2
Release     : mongodb_1
Size        : 6.7 M
Repo        : 10gen
Summary     : mongo server, sharding server, and support scripts
URL         : http://www.mongodb.org
License     : AGPL 3.0

Nainstalujte balíčky klienta a serveru Mongo

Nainstalujte tyto dva mongo-* balíčky, jak je ukázáno níže.

# yum install mongo-10gen mongo-10gen-server
  Installing : mongo-10gen-2.2.2-mongodb_1.x86_64
  Installing : mongo-10gen-server-2.2.2-mongodb_1.x86_64

Ověřte soubor mongod.conf

Tím se také nainstaluje výchozí soubor /etc/mongod.conf a spouštěcí skript /etc/rc.d/init.d/mongod

Soubor /etc/mongod.conf obsahuje následující výchozí hodnoty. Jak vidíte zde, soubory databáze mongo budou vytvořeny v adresáři /var/lib/mongo. Pokud chcete, aby byly soubory DB vytvořeny v jiném adresáři, změňte adresář dbpath v souboru mongod.conf.

# cat /etc/mongod.conf
logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
dbpath=/var/lib/mongo
pidfilepath = /var/run/mongodb/mongod.pid

Spusťte server MongoDB

Spusťte službu mongod, jak je uvedeno níže.

# service mongod start
Starting mongod: forked process: 15968
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting

Prohlédněte si soubory protokolu, abyste se ujistili, že se MongoDB úspěšně spustil. Ve výchozím nastavení běží MongoDB server na portu 27017.

# cat /var/log/mongo/mongod.log
Sat Jan 19 10:57:03 [initandlisten] MongoDB starting : pid=15968 port=27017 dbpath=/var/lib/mongo 64-bit host=centos
Sat Jan 19 10:57:03 [initandlisten] db version v2.2.2, pdfile version 4.5
Sat Jan 19 10:57:03 [initandlisten] git version: d1b43b61a5308c4ad0679d34b262c5af9d664267
Sat Jan 19 10:57:03 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Sat Jan 19 10:57:03 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidfilepath: "/var/run/mongodb/mongod.pid" }
Sat Jan 19 10:57:03 [initandlisten] journal dir=/var/lib/mongo/journal
Sat Jan 19 10:57:03 [initandlisten] recover : no journal files present, no recovery needed
Sat Jan 19 10:57:03 [websvr] admin web console waiting for connections on port 28017
Sat Jan 19 10:57:03 [initandlisten] waiting for connections on port 27017

Pro připojení k MongoDB použijte Mongo Shell

Zadáním „mongo“ spusťte mongo shell a připojte se k MongoDB, abyste provedli nějakou databázovou operaci. Zobrazí se výzva „>“, kde můžete zadat příkazy klienta mongo.

# mongo
MongoDB shell version: 2.2.2
connecting to: test
Welcome to the MongoDB shell.
>

Následující příkaz vloží ukázkový dokument do kolekce MongoDB s názvem „sites“. Je to podobné příkazu SQL „INSERT into“.

> doc1 = { name : "ramesh" };
> db.sites.insert( doc1 );

Následující zobrazí všechny dokumenty v kolekci „sites“ MongoDB. Je to podobné příkazu SQL „SELECT * from“.

> db.sites.find()
{ "_id" : ObjectId("50f72809a8e3c7a3aba2bf15"), "name" : "ramesh" }

Nainstalujte MongoDB ze zdroje

Pokud chcete nainstalovat MongoDB ze zdroje, postupujte podle kroků uvedených níže.

Install Pre-Reqs

Ujistěte se, že jsou již nainstalovány balíčky gcc-c++ a glibc-devel. MongoDB používá scons k vytvoření zdrojového kódu. Ujistěte se tedy, že balíček scons je již nainstalován.

# rpm -qa | egrep 'gcc-c++|glibc-devel|scons'
gcc-c++-4.4.6-4.el6.x86_64
glibc-devel-2.12-1.80.el6_3.6.x86_64
scons-2.0.1-1.el6.noarch

Pokud tyto předběžné požadavky nemáte, nainstalujte je.

# yum install gcc-c++ glibc-devel scons

Stáhněte si MongoDB

Přejděte na stránku stahování MongoDB a stáhněte si zdrojový kód. Aktuální stabilní verze MongoDB je 2.2.2.

Jakmile budete mít odkaz ke stažení, můžete také použít wget k přímému stažení zdrojového kódu.

cd /usr/src
wget http://downloads.mongodb.org/src/mongodb-src-r2.2.2.tar.gz
tar xvfz mongodb-src-r2.2.2.tar.gz
cd mongodb-src-r2.2.2

Sestavte MongoDB pomocí Scons

Scons je podobný dělat. Napište „scons all“ a sestavte MongoDB ze zdroje.

Vezměte prosím na vědomí, že když spustíte „scons all“, používá pouze jeden CPU a současně spouští pouze jednu úlohu k vytvoření zdrojového kódu. Takže to bude pomalé. Pokud chcete, aby scons využívaly celý CPU a spouštěly při sestavování více úloh, měli byste zadat počet úloh, které by měly provést.

V mém systému mám 8 jader. Pro sestavení jsem tedy provedl „scons -j 8 all“, jak je uvedeno níže.

# scons -j 8 all
scons: Reading SConscript files ...
scons version: 2.0.1
python version: 2 6 6 'final' 0
Checking whether the C++ compiler works(cached) yes
Checking for C header file unistd.h... (cached) yes
Checking whether clock_gettime is declared... (cached) yes
Checking for C library rt... (cached) yes
Checking for C++ header file execinfo.h... (cached) yes
Checking whether backtrace is declared... (cached) yes
Checking whether backtrace_symbols is declared... (cached) yes
Checking for C library pcap... (cached) no
Checking for C library wpcap... (cached) no
Checking if __malloc_hook is declared volatile... (cached) no
scons: done reading SConscript files.
..
Install file: "build/linux2/normal/mongo/test" as "test"
scons: done building targets.

Jakmile vytvoříte zdrojový kód, měli bychom jej nainstalovat. K instalaci MongoDB použijte „scons install“. Ve výchozím nastavení se nainstaluje do /usr/local/bin. Pokud chcete nainstalovat MongoDB do jiného adresáře, použijte volbu „–prefix“.

Chcete-li nainstalovat MongoDB do adresáře /opt/mongo, spusťte následující příkaz scons.

# scons --prefix=/opt/mongo install

Jak vidíte níže, nainstaloval MongoDB do adresáře /opt/mongo.

# ls -l /opt/mongo/
total 12
drwxr-xr-x. 2 root root 4096 Jan 19 13:33 bin
drwxr-xr-x. 3 root root 4096 Jan 19 13:33 include
drwxr-xr-x. 2 root root 4096 Jan 19 13:33 lib

Vytvořte soubor /etc/mongod.conf

Vytvořte následující konfigurační soubor, který bude server MongoDB používat při spouštění.

# cat /etc/mongod.conf
logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
dbpath=/var/lib/mongo
pidfilepath = /var/run/mongodb/mongod.pid

Ve výše uvedeném souboru parametr dbpath označuje, že když spustíme databázi MongoDB, vytvoří všechny požadované databáze v adresáři /var/lib/mongo. Tuto cestu můžete odpovídajícím způsobem změnit.

Vytvořte adresář, na který odkazuje cesta dbpath.

# mkdir -p /var/lib/mongo

Spusťte démona MongoDB

Přidejte /opt/mongo/bin/ do proměnné PATH.

# export $PATH=$PATH:/opt/mongo/bin/

Spusťte mongodb, jak je ukázáno níže, předáním umístění konfiguračního souboru pomocí volby -f.

# mongod -f /etc/mongod.conf
forked process: 20127
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting

Pokud použijete „mongod“ bez jakéhokoli argumentu, spustí se proces v popředí. Když zavřete terminál, váš server MongoDB se také zastaví. Ujistěte se tedy, že spustíte mongod s volbou -f, jak je uvedeno výše.

Ověřte soubory protokolu, abyste se ujistili, že se spustil správně. Ve výchozím nastavení běží MongoDB server na portu 27017.

# cat /var/log/mongo/mongod.log
Sat Jan 19 13:48:44 [initandlisten] MongoDB starting : pid=20127 port=27017 dbpath=/var/lib/mongo 64-bit host=centos
Sat Jan 19 13:48:44 [initandlisten] db version v2.2.2, pdfile version 4.5
Sat Jan 19 13:48:44 [initandlisten] git version: nogitversion
Sat Jan 19 13:48:44 [initandlisten] build info: Linux centos 2.6.32-279.19.1.el6.x86_64 #1 SMP Wed Dec 19 07:05:20 UTC 2012 x86_64 BOOST_LIB_VERSION=1_49
Sat Jan 19 13:48:44 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidfilepath: "/var/run/mongodb/mongod.pid" }
Sat Jan 19 13:48:44 [initandlisten] journal dir=/var/lib/mongo/journal
Sat Jan 19 13:48:44 [initandlisten] recover : no journal files present, no recovery needed
Sat Jan 19 13:48:44 [websvr] admin web console waiting for connections on port 28017
Sat Jan 19 13:48:44 [initandlisten] waiting for connections on port 27017

Pro připojení k MongoDB použijte Mongo Shell

Zadáním „mongo“ spusťte mongo shell a připojte se k MongoDB, abyste provedli nějakou databázovou operaci. Zobrazí se výzva „>“, kde můžete zadat příkazy klienta mongo.

# mongo
MongoDB shell version: 2.2.2
connecting to: test
Welcome to the MongoDB shell.
>

Následující příkaz vloží ukázkový dokument do kolekce MongoDB s názvem „sites“. Je to podobné příkazu SQL „INSERT into“.

> doc1 = { name : "ramesh" };
> db.sites.insert( doc1 );

Následující zobrazí všechny dokumenty v kolekci „sites“ MongoDB. Je to podobné příkazu SQL „SELECT * from“.

> db.sites.find()
{ "_id" : ObjectId("50f72809a8e3c7a3aba2bf15"), "name" : "ramesh" }

V dalším článku této série vysvětlíme několik příkazů MongoDB s příklady.


Linux
  1. Jak nainstalovat phpMyAdmin v Linuxu pomocí zdrojového kódu

  2. Nainstalujte Apache 2 ze zdroje na Linux

  3. Jak sestavit a nainstalovat GLFW 3 a používat jej v projektu Linux

  1. Jak nainstalovat a nakonfigurovat Nginx ze zdroje na Linuxu

  2. Jak zkompilovat a nainstalovat software ze zdrojového kódu na Linuxu

  3. Jak nainstalovat Apache CouchDB na CentOS 6 (ze zdroje a EPEL)

  1. Jak nainstalovat Elasticsearch a Kibana na Linux

  2. Jak nainstalovat nejnovější verzi OpenSSL ze zdroje v systému Linux

  3. Jak nainstalovat TBB ze zdroje na Linux a zprovoznit jej