Skip to main content

Cài đặt mongoDB

CÀI ĐẶT MONGODB TRÊN CENTOS

1. Install MongoDB Database Server

1.1 Download & Unzip package

Download bản Linux 64 bit về rồi giải nén thành /opt/mongodb-linux-x86_64-1.6.1

MongoDB mặc dù viết bằng C nhưng chỉ cần download về giải nén là chạy được!

#cd /opt

#wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.5.tgz

#tar -xvzf mongodb-linux-x86_64-1.6.5.tgz

#ln -s mongodb-linux-x86_64-1.6.1 mongodb

1.2 Add and enable 10gen MongoDB repository

#vi /etc/yum.repos.d/10gen-mongodb.repo

add:

 [10gen]  name=10gen Repository  baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64  gpgcheck=0

#yum install mongo-10gen mongo-10gen-server

2. Configure MongoDB Database Server

2.1 Edit /etc/mongod.conf file:

#vi /etc/mongod.conf

 logpath=/var/log/mongo/mongod.log  port=27017  dbpath=/var/lib/mongo

2.2 Fix /var/lib/mongo directory permissions

#chown-R mongod:mongod /var/lib/mongo/

2.3 Start MongoDB Server

#/etc/init.d/mongod start

2.4 Start MongoDB on boot

 #chkconfig --levels235 mongod on

3. Test MongoDB Server

3.1 Open MongoDB Command Line Client

# mongo

3.2 Save, Update and Find Some Test Data on MongoDB

 > use test  switched to db test  > db.foo.find()  > db.foo.save({a: 1})  > db.foo.find()  {"_id" : ObjectId("4b8ed53c4f450867bb35a1a9"), "a" : 1}  > db.foo.update({a: 1}, {a: 5})  > db.foo.find()  {"_id" : ObjectId("4b8ed53c4f450867bb35a1a9"), "a" : 5}

4. Open MongoDB Port (27017) on Iptables Firewall (as root user again)

Edit /etc/sysconfig/iptables file:

#vi /etc/sysconfig/iptables

4.1 Add following line before COMMIT:

 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport27017-j ACCEPT

4.2 Restart Iptables Firewall:

#/etc/init.d/iptables restart

4.3 Test remote connection

Command mongo server:port/database

# mongo 172.16.10.80:27017/test


CÀI ĐẶT TRÊN UBUNTU


/etc/apt/sources.list
Thêm vào( dùng cho ubuntu 10)
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
Thêm GPG Key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
aptitude update
aptitude install mongodb-10gen
sudo apt-get update
sudo apt-get install mongodb-10gen
==================================
Scritp trong init.d :

Nếu muốn chạy mongoDb như 1 service : tham khảo :

To remove the service SERVICE-NAME:

update-rc.d -f SERVICE-NAME remove

To add the service SERVICE-NAME:

update-rc.d SERVICE-NAME defaults

update-rc.d SERVICE-NAME defaults 29

The argument 29 is optional, which ensures that SERVICE-NAME is called after all scripts whose number is less than 29 have completed, and before all scripts whose number is 30 or greater.

To start the script SERVICE-NAME in runlevels 2345 and stop in 456, run (as root):

update-rc.d SERVICE-NAME start 2 3 4 5 . stop 0 1 6 .

update-rc.d SERVICE-NAME start 30 2 3 4 5 . stop 70 0 1 6 .

You can find more details of this command by running “man 8 update-rc.d”.


Comments

Popular posts from this blog

MongoDB chiếm nhiều RAM ?

A. Giới thiệu : MongoDB là một trong những NoSQL(Not oly SQL) database được biết đến nhiều hiện nay , đặc trưng với cách lưu trữ dạng binary Json (BSON)cũng như khả năng truy vấn uyển chuyển (các NoSQL khác thường giới hạn điều này ) . Shell script tương tác bằng javascript . Do đó nó hay đi chung với Node.js :) Tuy nhiên , có một vấn đề là mongoDb sử dụng nhiều dung lượng RAM (do cơ chế caching của nó). Giải pháp là phải tăng dung lượng RAM cho server đó , cũng như là monitoring cẩn thận để không xảy ra tình trạng này . Nhưng còn giải pháp nào khác nữa không ? Đầu tiên cần tìm hiểu các nguyên nhân MongoDB chiếm nhiều RAM như vậy , từ đó mới có cách giải quyết triệt để . Dưới đây là một số nguyên nhân mà tôi đã tìm hiểu được . B. Nguyên nhân : 1. Index : MongoDb có tốc độ đọc (read) nhanh , nếu ta biết cách tạo index hiệu quả . MongoDB dùng B-tree index (nhanh hơn table scans). Tuy nhiên index này lại nằm trên RAM . Khi bạn dùng câu lệnh "remove" để xóa các document tron

Luyện tập viết code

Dạo này đi phỏng vấn kiểu pair programming mới thấy sự cần thiết của việc rèn luyện code hằng ngày. Làm sao để tạo hứng thú luyện tập code đây? Dưới đây là danh sách các công việc khởi tạo ban đầu để hứng thú với code như sau:      1.  Trên github tạo repository chứa code để luyện tập. Ví dụ như MyHackerrank      2. Nếu có sẵn project rồi cần add vào github thì thực hiện các bước sau:             Tham khảo thêm project có sẵn vào github sử dụng command line        3. Tham gia một số cộng đồng coding như là Hackerrank và Leetcode. Hackerrank có phần  Hackerrank Interview Preparation Kit   cũng khá là hay ho, hồi xưa thời còn đi học làm gì có mấy trang kiểu này. Hoặc là  tập hợp các bài toán trên Leetcode . Ở leetcode cũng có một bộ sưu tập các câu hỏi phỏng vấn được đặt ra và trả lời bởi cộng đồng, cùng với các bài học về giải thuật và lập trình hướng tương tác rất hay.  Leetcode Explore         4. Ôn giải thuật và cấu trúc dữ liệu thì trang này khá đầy đủ  Geeksforgeeks&

ReplicaSet MongoDb

A. Giới thiệu : Replication được dùng để "hot backup" dữ liệu khi có sự cố xảy ra . MongoDb có 1 collection gọi là oplog (viết tắt của operation log) , master sẽ dùng collection này cho việc ghi và các slave sẽ truy vấn từ collection này . Mỗi lần ghi (insert,update, delete) sẽ tạo ra một document trong oplog collection (nếu sử dụng replication, không dùng thì mongoDb sẽ không dùng tới collection oplog này) . Để sử dụng replication , start mongod với option replSet. Truy vấn từ oplog xem ở đây (Mình xin dịch lại) rs.initiate() use local db.oplog.rs.find() { "ts" : { "t" : 1286821527000 , "i" : 1 } , "h" : NumberLong ( 0 ) , "op" : "n" , "ns" : "" , "o" : { "msg" : "initiating set" } } ts : thời gian thao tác thực hiện . h : một ID duy nhất cho thao tác này . Mỗi thao tác sẽ có một giá trị khác nhau trong trường này