1. 程式人生 > >mongodb二進位制安裝與yum安裝

mongodb二進位制安裝與yum安裝

一.什麼是mongodb

      MongoDB是一個高效能,開源,無模式的文件型資料庫,是當前NoSql資料庫中比較熱門的一種。MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能

最豐富,最像關係資料庫的。它在許多場景下可用於替代傳統的關係型資料庫或鍵/值儲存方式。它是由C++語言編寫的一個基於分散式檔案儲存的開源資料庫系統,它的目的在於為WEB應

用提供可擴充套件的高效能資料儲存解決方案。MongoDB是一個介於關係型資料庫和非關係型資料庫之間的產品,是非關係型資料庫當中功能最豐富,最像關係型資料庫的。它支援的資料結構

非常鬆散,會將資料儲存為一個文件,資料結構由鍵值對(key=>value)組成,是類似於json的bson格式,欄位值可以包含其它文件、陣列和文件陣列,因此可以儲存比較複雜的資料型別。

   適用場景:

網站實時資料處理。它非常適合實時的插入、更新與查詢,並具備網站實時資料儲存所需的複製及高度伸縮性;快取,由於效能很高,它適合作為資訊基礎設施的快取層。在系統重啟之後,

由它搭建的持久化快取層可以避免下層的資料來源過載。高伸縮性的場景。非常適合由數十或數百臺伺服器組成的資料庫,它的路線圖中已經包含對MapReduce引擎的內建支援。

 不適用場景:

要求高度事務性的系統。傳統的商業智慧應用。複雜的跨文件(表)級聯查詢。

二.  mongodb安裝

1. Ubuntu 二進位制安裝

2. Centos 二進位制安裝

3 . yum 安裝

4.  mongodb 建立使用者並開啟登陸驗證

5 . mongodb 常用命令

mongodb官網下載地址:https://www.mongodb.com/download-center/community

1. Ubuntu 二進位制安裝

我們可以建立mongodb的執行使用者來執行,也可以使用root直接來執行

如果我們需要使用指定的使用者來執行,那麼需要更改/opt/momgodb的目錄所有者為指定使用者。

 下載安裝包:

cd  /tmp/  && wget  https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-4.0.3.tgz

 解壓並移動到/opt/下

tar -xvzf  mongodb-linux-x86_64-ubuntu1404-4.0.3.tgz && mv  mongodb-linux-x86_64-ubuntu1404-4.0.3  /opt/mongodb

建立目錄 data(用來存放資料的),log(存放日誌的)

mkdir  /opt/mongodb/data
mkdir  /opt/mongodb/log

建立mongodb配置檔案 mongodb.conf

cd/opt/mongodb/ && vim mongodb.conf

配置檔案內容

bind_ip=0.0.0.0
port=27037
dbpath=/opt/mongodb/data/
logpath=/opt/mongodb/log/mongodb.log
pidfilepath =/opt/mongodb/mongodb.pid
logappend=true
fork=true 
maxConns=500
auth= false 

配置檔案引數解釋

 1 bind_ip=0.0.0.0  # 繫結的ip,0.0.0.0 表示本地所有ip
 2 port=27037        # 繫結的埠 預設埠是27017
 3 dbpath=/opt/mongodb/data/  #資料存放目錄
 4 logpath=/opt/mongodb/log/mongodb.log #日誌存放目錄
 5 pidfilepath =/opt/mongodb/mongodb.pid #pid檔案存放位置
 6 logappend=true    #日誌寫入為追加模式
 7 fork=true     #是否以守護程序執行
 8 maxConns=500  #最大連線數
 9 auth=true/false   #是否開啟認證,初次不開啟,設定完密碼後開啟。    

 啟動mongodb.

/opt/mongodb/bin/mongod -f /opt/mongodb/mongodb.conf

檢查埠是否在監聽

[email protected]:/opt/mongodb# lsof -i:27037
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
mongod  14285 root   10u  IPv4 30394148      0t0  TCP *:27037 (LISTEN)

防火牆開啟27037埠

iptables -A INPUT  -p tcp  -dport 27037 -j  ACCEPT
service iptables save

2. Centos7 二進位制安裝

centos 7的安裝基本和Ubuntu一致,只有少許的命令不同

 下載安裝包:

cd  /tmp/  && wget  https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.3.tgz

 解壓並移動到/opt/下

tar -xvzf  mongodb-linux-x86_64-rhel70*  && mv  mongodb-linux-x86_64-rhel70-4.0.3  /opt/mongodb

建立目錄 data(用來存放資料的),log(存放日誌的)

mkdir  /opt/mongodb/data
mkdir  /opt/mongodb/log

建立mongodb配置檔案 mongodb.conf

cd /opt/mongodb/ && vim mongodb.conf

配置檔案內容

bind_ip=0.0.0.0
port=27037
dbpath=/opt/mongodb/data/
logpath=/opt/mongodb/log/mongodb.log
pidfilepath =/opt/mongodb/mongodb.pid
logappend=true
fork=true 
maxConns=500
auth= false 

配置檔案引數解釋

 1 bind_ip=0.0.0.0  # 繫結的ip,0.0.0.0 表示本地所有ip
 2 port=27037        # 繫結的埠 預設埠是27017
 3 dbpath=/opt/mongodb/data/  #資料存放目錄
 4 logpath=/opt/mongodb/log/mongodb.log #日誌存放目錄
 5 pidfilepath =/opt/mongodb/mongodb.pid #pid檔案存放位置
 6 logappend=true    #日誌寫入為追加模式
 7 fork=true     #是否以守護程序執行
 8 maxConns=500  #最大連線數
 9 auth=true/false   #是否開啟認證,初次不開啟,設定完密碼後開啟。    

 啟動mongodb.

/opt/mongodb/bin/mongod -f /opt/mongodb/mongodb.conf

檢查埠是否在監聽

[email protected]:/opt/mongodb# lsof -i:27037
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
mongod  14285 root   10u  IPv4 30394148      0t0  TCP *:27037 (LISTEN)

防火牆開啟27037埠

firewall-cmd --add-port=27037/tcp  --permanent
firewall-cmd --reload

3 . yum 安裝

首先得配置yum 源,我這裡配置的yum源是阿里雲的源的mongodb 3.2的,可以根據自己的安裝版本配置不同的yum源

4.0 源 :http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/

vim /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/ 
gpgcheck=0
enabled=1

安裝

yum -y install mongodb-org mongodb-org-server

啟動並新增到開機自啟

systemctl enable mongodsystemctl start mongod

防火牆開放27017埠

firewall-cmd --add-port=27017/tcp  --permanent
firewall-cmd --reload

預設繫結的ip是:127.0.0.1

預設繫結的埠是:27017

我們可以編輯配置檔案/etc/mongod.conf,進行修改。

4 .mongodb 建立使用者並開啟登陸驗證

   在實際使用過程中,我需要為mongodb新增認證機制。這樣才能保障我們資料的安全性。

如果我們是自己使用tar包安裝的,那麼我們可以將mongo命令新增到直譯器路徑裡。yum安裝預設會新增

ln -s /opt/mongodb/bin/mongo  /usr/bin/mongo 

如果我們更改了預設埠的話,那麼我們需要使用 --port 引數指定埠

./mongo  --port 27037 
 1 [[email protected] bin]# ./mongo  --port 27037 
 2 MongoDB shell version v4.0.3
 3 connecting to: mongodb://127.0.0.1:27037/
 4 Implicit session: session { "id" : UUID("fc5045fe-8d56-4272-a362-f86e4a0d2a96") }
 5 MongoDB server version: 4.0.3
 6 Welcome to the MongoDB shell.
 7 For interactive help, type "help".
 8 For more comprehensive documentation, see
 9     http://docs.mongodb.org/
10 Questions? Try the support group
11     http://groups.google.com/group/mongodb-user
12 Server has startup warnings: 
13 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
14 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] 
15 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] 
16 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
17 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
18 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] 
19 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
20 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
21 2018-11-06T18:21:18.381+0800 I CONTROL  [initandlisten] 
22 ---
23 Enable MongoDB's free cloud-based monitoring service, which will then receive and display
24 metrics about your deployment (disk utilization, CPU, operation statistics, etc).
25 
26 The monitoring data will be available on a MongoDB website with a unique URL accessible to you
27 and anyone you share the URL with. MongoDB may use this information to make product
28 improvements and to suggest MongoDB products and deployment options to you.
29 
30 To enable free monitoring, run the following command: db.enableFreeMonitoring()
31 To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
32 ---
33 
34 > use admin;
35 switched to db admin
36 > db.createUser({ user: "admin", pwd: "9toc7ttpji8", roles: [{ role: "root", db: "admin" }] })
37 Successfully added user: {
38     "user" : "admin",
39     "roles" : [
40         {
41             "role" : "root",
42             "db" : "admin"
43         }
44     ]
45 }
46 > 

這樣我們就新增好了管理員使用者。

然後我們需要將我們 mongodb.conf 中的 auth 引數設定為true

auth = true

並將mongodb重啟,我們在進行查詢的時候就需要驗證使用者了。

5.  mongodb的常用命令