安裝MongoDB
1、下載
最新下載地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.4.tgz
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.8.tgz
mkdir usr/local/ mongodb
2、解壓
tar zxvf mongodb-linux-x86_64-rhel70-3.2.8.tgz
mv mongodb-linux-x86_64-rhel70-3.2.8 /usr/local/
mv mongodb-linux-x86_64-rhel70-3.2.8 mongodb
cd mongodb/
mkdir db
mkdir logs
cd bin/
3、編輯配置文件:
vim mongodb.conf
輸入以下內容:
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongodb.log
bind_ip=0.0.0.0
port=27017
fork=true
nohttpinterface=true
4、創建新的賬號:
groupadd mongodb
useradd mongodb -g mongodb
cd ../../
chown -R mongodb:mongodb mongodb
5、啓動:
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
6、設置開機自動啓動mongodb
vi /etc/rc.d/rc.local
/usr/local/mongodb/bin/mongod –config /usr/local/mongodb/bin/mongodb.conf
進入mongodb的shell模式:
/usr/local/mongodb/bin/mongo
查看數據庫列表:
show dbs
查看當前db版本:
db.version();
7、增加管理員權限:
userAdminAnyDatabase 這個角色擁有分配角色和用戶的權限,但沒有查寫的缺陷
root 這是超級管理員
readWrite 有讀寫權限
read 有讀權限
進入shell模式:
/usr/local/mongodb/bin/mongo
use admin //切換到admin數據庫
db.createUser(
{
user: “root”,
pwd: “llh2018”,
roles:[{role:”root”, db:”admin”}]
}
);
db.createUser(
{
user: “mongoRoot”,
pwd: “llh2018”,
roles:[{role:”userAdminAnyDatabase”, db:”admin”}]
}
);
驗證一下,在哪裏註冊用戶的要去哪個db裏認證:
db.auth(“mongoRoot”, “testMongoDB2016”)
此後可以用這個mongoRoot賬號去創建某一數據庫管理賬號:
db.createUser({user:”llh”,pwd:”llh2018”,roles:[{“role”:”readWrite”,”db”:”admin”}]})
但發現此時增加的賬號不能在客戶端登錄,原因是mongodb版本錯了:
先退出 mongod 服務
use admin
db.auth(“root”, “testMongoDB2016”)
db.shutdownServer()
再在無認證情況下打開 mongod
use admin
db.dropUser(“lelaohui”)
db.system.version.update({ “_id”:”authSchema”},{$set:{“currentVersion”:3}})
db.createUser({user:”lelaohui”,pwd:”123456”,roles:[{“role”:”readWrite”,”db”:”admin”}]})
再以認證的形式啓動mongodb
如果需要創建某一個新DB的賬號:
需要在shell下執行:
use TestDB
db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”TestDB”}]})
vim /usr/local/mongodb/bin/mongodb.conf
在文件末尾增加以下這一行:
auth=true
8、關閉數據庫服務器:
use admin
db.shutdownServer()
如果開戶安全認證,則要先認證:
use admin
db.auth(“root”, “testMongoDB2016”)
db.shutdownServer()