一旁蔼、安裝
- 去官網(wǎng)下載
https://www.mongodb.com/download-center/community
選擇版本下載 -
解壓至/usr/local冲杀,并重命名為mongodb
- 添加環(huán)境變量
vi .bash_profile 添加:
# mongodb 4.2.3
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
刷新生效
source .bash_profile
- 創(chuàng)建數(shù)據(jù)庫(kù)存儲(chǔ)目錄 /data/db
cd /usr/local/mongodb/bin
sudo mkdir -p ./data/db
二制圈、啟動(dòng)
- 終端輸入(使用sudo權(quán)限):
sudo mongod
- 如果沒(méi)有創(chuàng)建全局路徑 PATH,需要進(jìn)入以下目錄:
cd /usr/local/mongodb/bin
sudo ./mongod
- 打開(kāi)瀏覽器侯养,輸入http://localhost:27017會(huì)出現(xiàn):
It looks like you are trying to access MongoDB over HTTP on the native driver port.
三敦跌、使用數(shù)據(jù)庫(kù)
- 再打開(kāi)一個(gè)終端:
mongo
會(huì)出現(xiàn)版本信息:MongoDB shell version v4.2.3
終端上會(huì)一直顯示一個(gè) ‘>’ 符號(hào),此時(shí)就可以輸入mongodb的sql命令了:
# 輸入命令試試
show dbs;
- 正確停止mongodb逛揩,一定要正確的退出柠傍,不然下次再次連接數(shù)據(jù)庫(kù)會(huì)出現(xiàn)問(wèn)題
use admin;
db.shutdownServer();
此時(shí)http://localhost:27017連不上,服務(wù)也已停止
四辩稽、生產(chǎn)環(huán)境-啟動(dòng)方式
- 1惧笛、推薦使用配置文件方式啟動(dòng)
cd /usr/local/mongodb/bin
mongod -f mongodb.conf - 2、另一種是參數(shù)方式啟動(dòng)
bin/mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017 -auth
五逞泄、生產(chǎn)環(huán)境-用戶權(quán)限
在生產(chǎn)環(huán)境是有權(quán)限的患整,創(chuàng)建/修改配置文件
- 創(chuàng)建用戶時(shí)noauth = true,創(chuàng)建完成后auth = true
vi /usr/local/mongodb/bin/mongodb.conf
# mongodb.conf
# Where to store the data.
dbpath=/data/db
# where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
# 允許后臺(tái)運(yùn)行
fork=true
# 任意ip可訪問(wèn)
bind_ip = 0.0.0.0
# 端口號(hào)
port = 27017
# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true
# Enables periodic logging of CPU utilization and I/O wait
#cpu = true
# Turn on/off security. Off is currently the default
#noauth = true
auth = true
- 在createUser之前先use admin切換一下
use admin
db.createUser(
{
user:"username",
pwd:"password",
roles:[{role:"root",db:"admin"}]
}
);
附:添加用戶時(shí)各個(gè)角色對(duì)應(yīng)權(quán)限
1.數(shù)據(jù)庫(kù)用戶角色:read喷众、readWrite;
2.數(shù)據(jù)庫(kù)管理角色:dbAdmin各谚、dbOwner、userAdmin侮腹;
3.集群管理角色:clusterAdmin嘲碧、clusterManager稻励、clusterMonitor父阻、hostManager愈涩;
4.備份恢復(fù)角色:backup、restore
5.所有數(shù)據(jù)庫(kù)角色:readAnyDatabase加矛、readWriteAnyDatabase履婉、userAdminAnyDatabase、dbAdminAnyDatabase
6.超級(jí)用戶角色:root
- 創(chuàng)建完成后修改配置為auth = true并重啟斟览,下次就需要使用賬號(hào)登錄了
use admin
db.auth('username','password')
show dbs
# 展示集合列表
show collections
# 查詢user集合匯總username為admin的1條數(shù)據(jù)
db.user.find({username:'admin'}).limit(1)
# 統(tǒng)計(jì)user集合的總條數(shù)
db.user.count()
# 不帶賬號(hào)密碼數(shù)據(jù)庫(kù)
mongodb://127.0.0.1:27017
# 指定賬號(hào)密碼數(shù)據(jù)庫(kù)
mongodb://username:password@127.0.0.1:27017/admin
六苛茂、其他常見(jiàn)問(wèn)題
- telnet 27017不通時(shí)已烤,檢查防火墻狀態(tài)放行端口
# 防火墻開(kāi)啟狀態(tài)
systemctl status firewalld
# 放行端口列表(如果沒(méi)有在里面則使用后面的命令加入放行)
iptables -nL
# 防火墻放行27017即可
iptables -I INPUT -p tcp --dport 27017 -j ACCEPT