GNU/Linux >> Belajar Linux >  >> Linux

Cara Menginstal MongoDB dari Sumber (dan menggunakan YUM) di Linux

Nama MongoDB berasal dari Humongo kami DB.

Ini adalah database NoSQL open source. MongoDB dikembangkan dan didukung secara komersial oleh perusahaan 10gen.

Fokus MongoDB adalah pada skalabilitas dan kinerja. MongoDB adalah database berorientasi dokumen bebas skema. Ini menyimpan data sebagai objek JSON. Tidak seperti database SQL tradisional, Anda tidak perlu mendefinisikan skema. Skema tertanam dalam dokumen data itu sendiri, sehingga memudahkan Anda untuk mengubah skema kapan saja tanpa khawatir mengubah dokumen sebelumnya yang dimuat. Performa dan skalabilitas tinggi dimungkinkan karena tidak ada gabungan, dan tidak ada transaksi multi-dokumen yang dilakukan di MongoDB. Ini juga menyediakan replikasi di seluruh server dengan kemampuan untuk melakukan fail-over secara otomatis. Anda juga dapat menskalakan di seluruh server untuk ketersediaan tinggi.

Artikel ini adalah bagian pertama dari serangkaian artikel di MongoDB.

Instal MongoDB menggunakan YUM

Menginstal MongoDB menggunakan yum cukup mudah.

Siapkan Repositori Yum 10gen

Pertama, tambahkan Repositori 10gen ke yum Anda seperti yang ditunjukkan di bawah ini.

# 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

Catatan:Di atas adalah untuk sistem 64-bit. Jika Anda menggunakan sistem 32-bit, arahkan baseurl pada file di atas ke http://downloads-distro.mongodb.org/repo/redhat/os/i686

Sekarang, jalankan “yum info” untuk melihat paket server mongo-10gen dan mongo-10gen.

# 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

Instal Paket Klien dan Server Mongo

Instal dua paket mongo-* ini seperti yang ditunjukkan di bawah ini.

# 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

Verifikasi file mongod.conf

Ini juga menginstal file default /etc/mongod.conf, dan skrip startup /etc/rc.d/init.d/mongod

File /etc/mongod.conf berisi nilai default berikut. Seperti yang Anda lihat di sini, file database mongo akan dibuat di bawah direktori /var/lib/mongo. Jika Anda ingin file DB dibuat di bawah direktori yang berbeda, ubah direktori dbpath di file 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

Mulai server MongoDB

Mulai layanan mongod seperti yang ditunjukkan di bawah ini.

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

Lihat file log untuk memastikan MongoDB dimulai dengan sukses. Secara default server MongoDB berjalan pada port 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

Gunakan Mongo Shell untuk terhubung ke MongoDB

Ketik "mongo" untuk meluncurkan shell mongo dan sambungkan ke MongoDB untuk melakukan beberapa operasi basis data. Ini akan menampilkan perintah "> ” tempat Anda dapat mengetik perintah klien mongo.

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

Perintah berikut akan memasukkan dokumen sampel ke dalam koleksi MongoDB yang disebut "situs". Ini mirip dengan perintah SQL “INSERT into”.

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

Berikut ini akan menampilkan semua dokumen dalam koleksi "situs" MongoDB. Ini mirip dengan perintah SQL “SELECT * from”.

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

Instal MongoDB dari Sumber

Jika Anda ingin menginstal MongoDB dari sumber, ikuti langkah-langkah yang disebutkan di bawah ini.

Instal Pra-Persyaratan

Pastikan gcc-c++, dan paket glibc-devel sudah terinstal. MongoDB menggunakan scon untuk membangun kode sumber. Jadi, pastikan paket scons sudah terinstal.

# 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

Jika Anda tidak memiliki pra-persyaratan ini, instal.

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

Unduh MongoDB

Buka halaman unduhan MongoDB, dan unduh kode sumbernya. Versi stabil MongoDB saat ini adalah 2.2.2.

Setelah Anda memiliki tautan unduhan, Anda juga dapat menggunakan wget untuk mengunduh kode sumber secara langsung.

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

Bangun MongoDB menggunakan Scons

Scons mirip dengan membuat. Ketik “scons all” untuk membangun MongoDB dari sumber.

Harap dicatat bahwa ketika Anda menjalankan "scons all", itu hanya menggunakan satu CPU dan hanya menjalankan satu pekerjaan pada satu waktu untuk membangun kode sumber. Jadi, itu akan lambat. Jika Anda ingin scon menggunakan semua CPU dan menjalankan banyak tugas saat membangun, Anda harus menentukan jumlah tugas yang harus dijalankan.

Di sistem saya, saya memiliki 8 core. Jadi, saya menjalankan “scons -j 8 all” seperti yang ditunjukkan di bawah ini untuk membangun.

# 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.

Setelah Anda membuat kode sumber, kita harus menginstalnya. Gunakan "scons install" untuk menginstal MongoDB. Secara default akan menginstalnya di bawah /usr/local/bin. Jika Anda ingin menginstal MongoDB di direktori yang berbeda, gunakan opsi “–prefix”.

Untuk menginstal MongoDB di bawah direktori /opt/mongo, jalankan perintah scons berikut.

# scons --prefix=/opt/mongo install

Seperti yang Anda lihat di bawah, MongoDB telah terinstal di bawah direktori /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

Buat file /etc/mongod.conf

Buat file konfigurasi berikut yang akan digunakan oleh server MongoDB saat startup.

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

Dalam file di atas, parameter dbpath menunjukkan bahwa ketika kita memulai database MongoDB, itu akan membuat database yang diperlukan di bawah direktori /var/lib/mongo. Anda dapat mengubah jalur ini.

Buat direktori yang dirujuk oleh dbpath.

# mkdir -p /var/lib/mongo

Mulai Daemon MongoDB

Tambahkan /opt/mongo/bin/ ke variabel PATH.

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

Mulai mongodb seperti yang ditunjukkan di bawah ini dengan meneruskan lokasi file konfigurasi menggunakan opsi -f.

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

Jika Anda hanya menggunakan "mongod" tanpa argumen, itu akan memulai proses di latar depan. Saat Anda menutup terminal, server MongoDB Anda juga akan berhenti. Jadi, pastikan untuk mengeksekusi mongod dengan opsi -f seperti yang ditunjukkan di atas.

Verifikasi file log untuk memastikannya dimulai dengan benar. Secara default server MongoDB berjalan pada port 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

Gunakan Mongo Shell untuk terhubung ke MongoDB

Ketik "mongo" untuk meluncurkan shell mongo dan sambungkan ke MongoDB untuk melakukan beberapa operasi basis data. Ini akan menampilkan perintah "> ” tempat Anda dapat mengetik perintah klien mongo.

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

Perintah berikut akan memasukkan dokumen sampel ke dalam koleksi MongoDB yang disebut "situs". Ini mirip dengan perintah SQL “INSERT into”.

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

Berikut ini akan menampilkan semua dokumen dalam koleksi "situs" MongoDB. Ini mirip dengan perintah SQL “SELECT * from”.

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

Pada artikel berikutnya dari seri ini, kami akan menjelaskan beberapa perintah MongoDB dengan contoh.


Linux
  1. Cara Menginstal dan Mengkonfigurasi Nginx dari Sumber di Linux

  2. Cara Mengkompilasi dan Menginstal Perangkat Lunak dari Kode Sumber di Linux

  3. Cara Menginstal Apache CouchDB di CentOS 6 (dari Sumber dan EPEL)

  1. Cara Instal phpMyAdmin di Linux menggunakan Source Code

  2. Instal Apache 2 dari Sumber di Linux

  3. Cara menginstal TBB dari sumber di Linux dan membuatnya berfungsi

  1. Cara menginstal Elasticsearch dan Kibana di Linux

  2. Cara Menginstal versi OpenSSL terbaru dari Sumber di Linux

  3. Cara membangun &menginstal GLFW 3 dan menggunakannya dalam proyek Linux