天天看點

mongodb在linux下的安裝

1. 下載下傳MongoDB

2. 解壓檔案到某目錄下,然後重命名:

[root@localhost      var]# tar -xzvf mongodb-linux-x86_64-enterprise-rhel62-3.4.9.tgz         

[root@localhost var]# mv mongodb-linux-x86_64-enterprise-rhel62-3.4.9      /usr/local/mongodb 

bin下的mongod就是MongoDB的服務端程序,mongo就是其用戶端,其它的指令用于MongoDB的其它用途如MongoDB檔案導出等。

3. 啟動MongoDB.

    要先建立好MongoDB 存放資料檔案和日志檔案的目錄,此處建立在/data下:

[root@localhost var]# cd /data/db        

[root@localhost db]# mkdir mongodb_data

[root@localhost db]# mkdir mongodb_log

[root@localhost db]# ls   

mongodb_data  mongodb_log  

   在MongoDB安裝目錄下的bin下使用mongod啟動MongoDB,

./mongod --dbpath=/data/db/mongodb_data/ --logpath=/data/db/mongodb_log/mongodb.log --logappend&       

等待啟動成功後,可檢視是否啟動成功了,預設端口号是27017,當然在啟動時也可以指定未使用的其它端口。

  先通過檢視端口号看MongoDB是否啟動了。

[root@localhost /db]# netstat -lanp | grep "27017"  

tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN           2442/mongod                 

unix  2      [ ACC ]     STREAM     LISTENING     18203   2442/mongod         /tmp/mongodb-27017.sock  

  可以看到,已啟動成功,現在使用mongo用戶端通路一下該資料庫。

[root@localhost      bin]# ./mongo

MongoDB shell      version v3.4.9

connecting      to: mongodb://127.0.0.1:27017

MongoDB      server version: 3.4.9 

connecting to: test        

>   

  安裝成功

4. 額外工作。

   把mongod放到服務自啟動項中

    編輯/etc/rc.d/rc.local,加入下述代碼然後再儲存即可。 

   #add mongonDB service   

   rm -rf /data/db/mongodb_data/* && /usr/local/mongodb/bin/mongod --dbpath=/data/db/mongodb_data/ --logpath=/data/db/mongodb_log/mongodb.log --logappend&  

   我們重新開機計算機再看MongoDB是否啟動,重新開機後可以直接使用 mongo指令登入,最終發現是可以成功的。

   另外,我們使用mongo指令登入 MongoDB還要轉到mongo指令所在目錄再執行./mongo,這樣是不是有些麻煩?是以,我們可以簡化這點,将該指令檔案copy到/usr/bin下,這樣就可以在任何目錄下使用mongo指令了。

[root@localhost bin]# ls   

bsondump  dbbak  mongo  mongod  mongodump  mongoexport  mongofiles  mongoimport  mongorestore  mongos  mongosniff  mongostat        

[root@localhost bin]# cp mongo /usr/bin/  

     轉到任一目錄試下mongo指令:

[root@localhost bin]# cd /        

[root@localhost /]# mongo   

MongoDB shell version: 1.8.1        

  可以看到登入成功了,說明我們可以像使用ls指令一樣使用mongo指令了。

連接配接資料庫(如果test不存在,則直接建立一個test):

use test

顯示資料庫:

show dbs

插入一條記錄(切換到指定資料庫下之後,需要插入至少一個文檔後才會在show dbs中顯示資料庫名):

db.items.insert({"name":"yiibai tutorials"})

建立使用者和密碼(在admin庫上):

db.createUser({user: "lich",pwd: "goodjob1234",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

驗證使用者權限(傳回1則使用者存在):

db.auth('lich','goodjob1234')

檢視admin庫裡面的全部使用者:

use admin;

db.system.users.find();

檢視所有表:

show tables;

另外除了以上的預設啟動方式,還可以通過配置mongod.conf的方式來啟動mongodb(未測試成功)

啟動MongoDB有2種方式,一種是直接預設啟動,另一種是指定配置檔案。啟動方式如下:

1:  /etc/init.d/mongod start 或service mongod start 

2:  mongod --config /etc/mongodb.conf

下面我們看看配置檔案:

vi /etc/mongod.conf

# 日志檔案位置

logpath=/var/log/mongo/mongod.log

# 以追加方式寫入日志

logappend=true

# 是否以守護程序方式運作

fork = true

# 預設27017

#port = 27017

# 資料庫檔案位置

dbpath=/var/lib/mongo

# 啟用定期記錄CPU使用率和 I/O 等待

#cpu = true

# 是否以安全認證方式運作,預設是不認證的非安全方式

#noauth = true

#auth = true

# 詳細記錄輸出

#verbose = true

# Inspect all client data for validity on receipt (useful for

# developing drivers)用于開發驅動程式時驗證用戶端請求

#objcheck = true

# Enable db quota management

# 啟用資料庫配額管理

#quota = true

# 設定oplog記錄等級

# Set oplogging level where n is

#   0=off (default)

#   1=W

#   2=R

#   3=both

#   7=W+some reads

#diaglog=0

# Diagnostic/debugging option 動态調試項

#nocursors = true

# Ignore query hints 忽略查詢提示

#nohints = true

# 禁用http界面,預設為localhost:28017

#nohttpinterface = true

# 關閉伺服器端腳本,這将極大的限制功能

# Turns off server-side scripting.  This will result in greatly limited

# functionality

#noscripting = true

# 關閉掃描表,任何查詢将會是掃描失敗

# Turns off table scans.  Any query that would do a table scan fails.

#notablescan = true

# 關閉資料檔案預配置設定

# Disable data file preallocation.

#noprealloc = true

# 為新資料庫指定.ns檔案的大小,機關:MB

# Specify .ns file size for new databases.

# nssize =

# Replication Options 複制選項

# in replicated mongo databases, specify the replica set name here

#replSet=setname

# maximum size in megabytes for replication operation log

#oplogSize=1024

# path to a key file storing authentication info for connections

# between replica set members

#指定存儲身份驗證資訊的密鑰檔案的路徑

#keyFile=/path/to/keyfile

或者使用以下的配置:(可做複制集測試配置,注意端口号和複制集的名稱,複制集名稱必須都一緻)

28001.conf

bind_ip=192.168.20.144

port=28001

logpath=/data/db/mongodb_log/28001.log

dbpath=/data/db/mongodb_data28001

replSet=imooc

fork=true

28002.conf

port=28002

logpath=/data/db/mongodb_log/28002.log

dbpath=/data/db/28002

28003.conf

port=28003

logpath=/data/db/mongodb_log/28003.log

dbpath=/data/db/28003

指定端口啟用mongo :

cd /usr/local/mongo/bin

./mongo 192.168.20.144:28001/admin