文章目錄
- MongoDB 安裝
- 二進制安裝
- YUM 安裝
- Tips:
- 1、MongoDB安裝問題
- 2、MongoDB登錄
- 3、MongoDB排序時內存大小限制和創建索引
- 4、創建用戶
- 5、Java yaml使用密碼連接mongodb
- 6、MongoDB增刪改查
MongoDB 安裝
二進制安裝
[root@mysql5-7 mongodb-6.0.4]# cat start.sh #!/bin/bashcd /opt/mongodb-6.0.4
mongod --dbpath /data/mongodb --logpath ./mongod.log --bind_ip=0.0.0.0 --fork
[root@mysql5-7 mongodb-6.0.4]# cat stop.sh
#!/bin/bashcd /opt/mongodb-6.0.4
mongod --dbpath /data/mongodb --logpath ./mongod.log --shutdown
YUM 安裝
cat > /etc/yum.repos.d/mongodb-org-4.4.repo << EOF
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-4.4.asc
EOF
yum install -y mongodb-org
systemctl start mongod
Tips:
1、MongoDB安裝問題
故障分析 | MongoDB 5.0 報錯 Illegal instruction 解決
仔細查找官方文檔,可以看到安裝MongoDB 5.0 版本確實需要依賴支持 AVX 指令集的 CPU
檢查下我自己服務器的 CPU , 確實不支持 AVX (注意:若支持AVX指令集,flags字段會有打印 ‘avx’ 字符串):
結論
若需要安裝或升級到 MongoDB 5.0 新版本,一定要提前確保自己的服務器 CPU 能否支持 AVX 指令集 架構,檢查命令如下:
cat /proc/cpuinfo |grep avx
一般家用服務器和新出的服務器都支持 avx 指令集,但是老版本的和一些服務器的 cpu 不支持該指令集,建議使用4.4版本的mongoDB
2、MongoDB登錄
mongo -u root -p 1233show dbs
3、MongoDB排序時內存大小限制和創建索引
[Error] Executor error during find command :: caused by :: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit.
32MB這個限制是在參數internalQueryExecMaxBlockingSortBytes
中控制。你可以在MongoDB的客戶端上直接查看這個參數的值,執行以下語句:
db.runCommand({getParameter: 1,"internalQueryExecMaxBlockingSortBytes": 1
})
所以在4.3以上的版本,執行以下命令:
db.runCommand({getParameter: 1,"internalQueryMaxBlockingSortMemoryUsageBytes": 1
})
擴大排序內存的限制,例如擴大10倍至320M
db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320})
4、創建用戶
超級管理員
# 進入 mongo
mongo# 切換為 admin 用戶
use admin
添加超級管理員賬號
db.createUser({user:"rootadmin",pwd:"123456",roles:["root"]}
)
設置完成,可以通過指令 show users
查看是否設置成功。
開啟驗證權限
找到MongoDB
安裝目錄下的bin
目錄中的mongod.cfg
文件,開啟權限驗證功能:
security:authorization: enabled
創建pro
用戶,并授予pro
用戶check_pro
和sample_pro
2個庫的管理權限和讀寫權限
db.createUser({user:"pro",pwd:"123456",roles:[{role:"dbAdmin", db:"sample_pro"},{role:"readWrite",db:"sample_pro"},{role:"dbAdmin", db:"check_pro"},{role:"readWrite",db:"check_pro"}]})
找到MongoDB
安裝目錄下的bin
目錄中的mongod.cfg
文件,開啟權限驗證功能:
security:authorization: enabled
5、Java yaml使用密碼連接mongodb
data:mongodb:host: 127.0.0.1username: 賬號password: 密碼port: 27017uri: mongodb://賬號:密碼@127.0.0.1:27017/check_pro?authSource=admin
uri: mongodb://賬號:密碼@127.0.0.1:27017/check_pro?authSource=admin
6、MongoDB增刪改查
查詢所有
db.collectionName.find({});
查詢+格式化顯示
db.collectionName.find({}).pretty();
查詢排序
db.collectionName.find({"userId":100012}).sort({"updateTime":-1});
更新符合條件的所有數據(注:使用前,先find執行,以確定更新的范圍符合要求)
db.collectionName.update({"userId":233290,"shortName":"LCC"},{$set:{"money":"2000","freezeMoney":"0"}},{multi:true});
刪除符合條件的所有數據記錄(注:使用前,先find執行,以確定刪除的范圍符合要求)
db.collectionName.remove({"userId":100012});
刪除所有數據但保留集合
db.collectionName.remove({});
刪除數據及集合本身(慎用)
db.collectionName.drop();
新增集合及插入數據(沒有集合=創建集合+插入新記錄,有集合=插入新記錄)
db.collectionName.save({"usid":123});或db.collectionName.insert({"uu":123});