Centos 7安裝MongoDB


MongoDB介紹

簡介

  • MongoDB 是一個基於分布式 文件存儲的NoSQL數據庫
  • 由C++語言編寫,運行穩定,性能高
  • 旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案
  • 查看官方網站

MongoDB特點

  • 模式自由 :可以把不同結構的文檔存儲在同一個數據庫里
  • 面向集合的存儲:適合存儲 JSON風格文件的形式
  • 完整的索引支持:對任何屬性可索引
  • 復制和高可用性:支持服務器之間的數據復制,支持主-從模式及服務器之間的相互復制。復制的主要目的是提供冗余及自動故障轉移
  • 自動分片:支持雲級別的伸縮性:自動分片功能支持水平的數據庫集群,可動態添加額外的機器
  • 豐富的查詢:支持豐富的查詢表達方式,查詢指令使用JSON形式的標記,可輕易查詢文檔中的內嵌的對象及數組
  • 快速就地更新:查詢優化器會分析查詢表達式,並生成一個高效的查詢計划
  • 高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)

Packages包說明

MongoDB官方源中包含以下幾個依賴包:
mongodb-org: MongoDB元數據包,安裝時自動安裝下面四個組件包:
1.mongodb-org-server: 包含MongoDB守護進程和相關的配置和初始化腳本。
2.mongodb-org-mongos: 包含mongos的守護進程。
3.mongodb-org-shell: 包含mongo shell。
4.mongodb-org-tools: 包含MongoDB的工具: mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop。

安裝

1安裝

https://www.mongodb.com/download-center/community(官方)

https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/(清華)

https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/(阿里)

 

 

 

yum -y install https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/上面文件名字

安裝完之后,是一個服務。 服務名字mongod.service

systemctl enable mongod.service
systemctl start mongod.service

進入mongodb添加用戶

進入的方式

mongo

mongo ip:端口

mongo -u 賬號 -p 密碼

mongo -host 192.168.31.102 -port 27017 -u root -p wdq123 -authenticationDatabase admin

進入后創建用戶

db.createUser(
{
user: "abc",
pwd: "aaa@bbb",
roles: [ { role: "root", db: "admin" } ]
}
)

確定用戶是否創建成功

db.auth("useradmin", "adminpassword") #如果返回1,則表示成功。

exit #退出系統

roles中的role可以是以下

 

 

 

 

 

 

 

2啟用身份驗證

#外網訪問(默認是127.0.0.1,只能在內網訪問)
net:
  port: 27017
  bindIp: 0.0.0.

#身份驗證
security:
  authorization: enabled

 

修改mongodb配置(yum文件)

查找mongodb目錄
whereis mongod
修改配置文件
vim /etc/mongod.conf
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 192.168.31.102  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
--修改為ip
security: authorization: enabled
--這個開啟需要密碼登錄
#operationProfiling: #replication: #sharding: ## Enterprise
-Only Options #auditLog: #snmp:
# mongodb.conf

# 數據庫文件位置
dbpath=/var/lib/mongodb

#日志文件的路徑
logpath=/var/log/mongodb/mongodb.log

# 是否追加方式寫入日志,默認True
logappend=true

# 設置綁定ip
bind_ip = 127.0.0.1
# 設置端口
port = 27017

# 是否以守護進程方式運行,默認false
fork = true

# 啟用日志文件,默認啟用
journal=true

# 啟用定期記錄CPU利用率和 I/O 等待,默認false
#cpu = true

# 是否以安全認證方式運行,默認是不認證的非安全方式
#noauth = true
#auth = true

# 詳細記錄輸出,默認false
#verbose = true

#用於開發驅動程序時驗證客戶端請求
#objcheck = true

# # 啟用數據庫配額管理,默認false
#quota = true

# 設置oplog日志記錄等級,默認0
#   0=off (default)
#   1=W
#   2=R
#   3=both
#   7=W+some reads
#oplog = 0

# 是否打開動態調試項,默認false
#nocursors = true

# 忽略查詢提示,默認false
#nohints = true

# 禁用http界面,默認為localhost:28017
#nohttpinterface = true

# 關閉服務器端腳本,這將極大的限制功能,默認false
#noscripting = true

# 關閉掃描表,任何查詢將會是掃描失敗
#notablescan = true

# 關閉數據文件預分配
#noprealloc = true

# 為新數據庫指定.ns文件的大小,單位:MB
# nssize = <size>

# 用於Mongo監控服務器的Accout token。
#mms-token = <token>

# Mongo監控服務器的服務器名稱。
#mms-name = <server-name>

# Mongo監控服務器的Ping間隔時間,即心跳
#mms-interval = <seconds>

# Replication Options

# 設置主從復制參數
#slave = true # 設置從節點
#source = master.example.com # 指定從節點的主節點
# Slave only: 指定要復制的單個數據庫
#only = master.example.com
# or
#master = true # 設置主節點
#source = slave.example.com 

# 設置副本集的名字,所有的實例指定相同的名字屬於一個副本集
replSet = name

#pairwith = <server:port>

# 仲裁服務器地址
#arbiter = <server:port>

# 默認為false,用於從實例設置。是否自動重新同步
#autoresync = true

# 指定的復制操作日志(OPLOG)的最大大小
#oplogSize = <MB>

# 限制復制操作的內存使用
#opIdMem = <bytes>

# 設置ssl認證
# Enable SSL on normal ports
#sslOnNormalPorts = true

# SSL Key file and password
#sslPEMKeyFile = /etc/ssl/mongodb.pem
#sslPEMKeyPassword = pass
View Code
# 普通配置文件
# mongodb.conf

dbpath=/var/lib/mongodb  
logpath=/var/log/mongodb/mongodb.log 
pidfilepath=/var/log/mongodb/master.pid  
directoryperdb=true  
logappend=true  
bind_ip=127.0.0.1 
port=27017  
fork=true  

# 集群配置文件
dbpath=/var/lib/mongodb  
logpath=/var/log/mongodb/mongodb.log 
pidfilepath=/var/log/mongodb/master.pid  
directoryperdb=true  
logappend=true  
replSet=name  
bind_ip=127.0.0.1 
port=27017  
fork=true  
noprealloc=true 
View Code

重啟服務

 

用戶權限

每個數據庫都要有獨立的密碼...
use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })

新建讀寫賬戶
use yourdatabase
db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite", db: "yourdatabase" }] })

 

服務器指令
mongo -h
查看幫助文檔

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM