一、Mongodb安裝和配置

簡介

MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。

MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品。

Mongodb安裝

下面安裝的是mongodb-3.6.7版本,linux系統(tǒng)使用的是Centos7

1、安裝包下載

進入mongodb官網(wǎng)下載地址https://www.mongodb.com/,點擊右上角 Try Free 按鈕進入下載頁下載需要的安裝包。

版本說明:

  • 穩(wěn)定版本:previous release
  • 最新版本:current release
  • 開發(fā)版本(不建議使用):development release

下載說明:

  • windows版本的下載:直接下載MIS的安裝包,下載后點擊即可安裝。
  • 對于linux版本,下面使用的是在Centos7上安裝,因此選擇的是Linux 64-bit legacy x64版本。

2、 windows 上安裝mongodb

windows版本的下載好后直接安裝就可以了,在安裝的時候如果需要更改安裝路徑(建議自己重新選個安裝路徑)記得選自定義安裝。

我們本地開發(fā)只需要安裝mongodb server就可以了,在選擇的時候需要注意,如果安裝路徑選擇沒有出現(xiàn)先點擊下一步再返回就出現(xiàn)了,在最后確認安裝的時候,下面有個MongoDB的工具,記得去掉勾選,那個工具不是太好用,建議使用其他的如Robo 3T。同時可以不用讓其安裝為服務,這樣我們可以使用下面腳本來啟動,關(guān)閉也很方便。

  • 編寫配置文件

安裝好后,在安裝目錄下的bin目錄中創(chuàng)建一個mongodb的配置文件 mongodb.conf,并在里面寫入如下配置。(注意里面的路徑請寫自己的,同時記得提前將你寫的文件夾創(chuàng)建好,否則會啟動失?。?/p>

# 設置數(shù)據(jù)文件的存放目錄
dbpath = D:\devtools\MongoDB\data
# 設置數(shù)據(jù)文件的存放目錄
logpath = D:\devtools\MongoDB\data\logs\mongodb.log
# 設置端口號
port = 27017
# 設置為以守護進程的方式運行,即在后臺運行
#fork = true 
# 關(guān)閉http接口,默認關(guān)閉27018端口訪問
#httpinterface = true
#權(quán)限啟用驗證
auth = false
#綁定IP,使其可以外網(wǎng)訪問
#bind_ip = 0.0.0.0
  • 創(chuàng)建啟動腳本

在安裝目錄的bin目錄中創(chuàng)建一個txt文本文件,在里面寫入如下腳本

@echo off
title MongoDB服務
echo ########################################
echo # MongoDB服務啟動成功...          
echo #                                      
for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0') do (
set IP=%%a
)
echo # IP:  %IP%  
echo # 注意:關(guān)閉當前窗口即可停止MongoDB服務                 
echo ########################################
color 02
echo.
mongod -f mongodb.conf
color 04
echo.
echo ########################################
echo # MongoDB服務啟動失敗...
echo #
echo # 請查看日志文件中的錯誤提示
echo ########################################
pause

或者直接寫如下腳本:

mongod -f mongodb.conf

之后將文件后綴改為bat;現(xiàn)在點擊運行該文件就可以啟動mongodb數(shù)據(jù)庫了

腳本說明:其實只需要mongod -f mongodb.conf這句命令就可以了,后面這個‘mongodb.conf’就是剛才創(chuàng)建的配置文件


3、 Centos7上安裝mongodb

  • 安裝包解壓

      tar -zxvf mongodb-linux-x86_64-3.6.7.tgz
    

重新命名,并將其移動到/home/soft/mongodb/mongodb-3.6.7目錄下,此目錄為自定義的。
mv mongodb-linux-x86_64-3.6.7 /home/soft/mongodb/mongodb-3.6.7

  • 創(chuàng)建日志和數(shù)據(jù)存放文件夾

在/home/soft/mongodb/mongodb-3.6.7目錄下創(chuàng)建一個名為logs的文件夾和data/db的數(shù)據(jù)存放文件夾

mkdir logs
mkdir -p data/db
  • 編寫配置文件

進入/home/soft/mongodb/mongodb-3.6.7目錄下的bin目錄,在里面創(chuàng)建一個名為mongodb.conf的文件

#數(shù)據(jù)文件存放目錄
dbpath = /home/soft/mongodb/mongodb-3.6.7/data/db
#日志文件存放目錄
logpath = /home/soft/mongodb/mongodb-3.6.7/logs/mongodb.log
#端口
port = 27017
#以守護進程的方式啟用,即后臺運行;默認false
fork = true
# 關(guān)閉web管理訪問,默認關(guān)閉27018端口訪問,這個是在prot端口上加1000
#httpinterface = true
#是否開啟權(quán)限驗證
auth = true
#綁定ip,讓其能夠通過外網(wǎng)訪問, 0.0.0.0代表所有
bind_ip = 0.0.0.0
  • 編寫啟動和停止腳本

在mongodb的安裝目錄下的bin目錄下執(zhí)行如下操作

創(chuàng)建啟動腳本

vi start.sh

在腳本文件中寫入如下內(nèi)容:

./mongod -f mongodb.conf

創(chuàng)建停止腳本

vi stop.sh

在腳本文件中寫入如下內(nèi)容:

./mongod -f ./mongodb.conf --shutdown

注意:需要開啟外網(wǎng)訪問時,如果你使用的是阿里云的或騰訊云的服務器,且開啟了安全組功能,那么你還需要在安全組模塊中將你設置的端口開放。


4、 設置管理賬號

4.1 先將配置mongodb.conf配置文件中的fork參數(shù)設為false,auth的設置為false; 然后啟動mongo服務。

使用腳本啟動:
./start.sh

4.2 讓在另外一個管理窗口連接mongo

./mongo

4.3 創(chuàng)建用戶

a. 添加超管用戶(可以添加、更新、刪除用戶,以及數(shù)據(jù)庫授權(quán))

use admin
db.createUser(
    {
        user:"userAdmin",
        pwd:"123456",
        roles:[{
            role:"userAdminAnyDatabase",
            db:"admin"
            }
        ]
    }
);

退出登陸

quit

修改配置文件,將auth的設置為true,開啟權(quán)限驗證。停止mongo服務,重新啟動。再次登陸。

b. 添加普通用戶(為其他數(shù)據(jù)庫)

#使用demo數(shù)據(jù)庫
use demo
#添加用戶
db.createUser(
    {
        user:"demo",
        pwd: "123456",
        roles: [{ role: "readWrite", db: "demo"}]
    }
)

此時會報權(quán)限認證的錯誤,使用如下命令進行權(quán)限認證

db.auth('userAdmin', '123456')

之后再次執(zhí)行添加用戶操作。

c. 添加超管用戶root

use admin
db.createUser(
    {
        user:"root",
        pwd:"123456",
        roles:[{
            role:"root",
            db:"admin"
            }
        ]
    }
);

其他命令

#進入admin數(shù)據(jù)庫
use admin
#進行權(quán)限認證
db.auth('userAdmin', '123456')
#查詢所有用戶
db.system.users.find()
#更新用戶
db.updateUser('demo',{user:'demo',pwd:'123456',roles:[{role:'read',db:'demo'}]})
#刪除用戶
db.dropUser('demo')
#創(chuàng)建數(shù)據(jù)庫
use 數(shù)據(jù)庫名
#顯示已有數(shù)據(jù)庫
show dbs

4.4 MongoDB數(shù)據(jù)庫角色

內(nèi)建的角色

名稱 說明
數(shù)據(jù)庫用戶角色 read、readWrite
數(shù)據(jù)庫管理角色 dbAdmin、dbOwner、userAdmin
集群管理角色 clusterAdmin、clusterManager
備份恢復角色 backup、restore
所有數(shù)據(jù)庫角色 readAnyDatabase、readWriteAnyDatabase
超級用戶角色 root (這里還有幾個角色間接或直接提供了系統(tǒng)超級用戶的訪問[dbOwner 、userAdmin、userAdminAnyDatabase])
內(nèi)部角色 __system

角色說明:

名稱 說明
Read 允許用戶讀取指定數(shù)據(jù)庫
readWrite 允許用戶讀寫指定數(shù)據(jù)庫
dbAdmin 允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計或訪問system.profile
userAdmin 允許用戶向system.users集合寫入,可以找指定數(shù)據(jù)庫里創(chuàng)建、刪除和管理用戶
clusterAdmin 只在admin數(shù)據(jù)庫中可用,賦予用戶所有分片和復制集相關(guān)函數(shù)的管理權(quán)限。
readAnyDatabase 只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限
readWriteAnyDatabase 只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限
userAdminAnyDatabase 只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限
dbAdminAnyDatabase 只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限。
root 只在admin數(shù)據(jù)庫中可用。超級賬號,超級權(quán)限

5、下載圖形化管理工具

這里推薦使用: Robo3T, 官網(wǎng)地址:https://robomongo.org;官網(wǎng)上有Robo 3T(免費的)Studio 3T(功能更全面,高級功能收費;可以免費體驗幾天,到期后重新安裝就又可以用了,導入導出數(shù)據(jù)時很方便);個人感覺Robo 3T的操作界面更清新些。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容