IT评测·应用市场-qidao123.com

标题: CentOS7二进制安装和YUM安装mongodb,服务器无法安装5.0以上的 mongodb 数 [打印本页]

作者: 北冰洋以北    时间: 2024-7-14 22:41
标题: CentOS7二进制安装和YUM安装mongodb,服务器无法安装5.0以上的 mongodb 数
MongoDB 安装

二进制安装

  1. [root@mysql5-7 mongodb-6.0.4]# cat start.sh
  2. #!/bin/bash
  3. cd /opt/mongodb-6.0.4
  4. mongod --dbpath /data/mongodb --logpath ./mongod.log --bind_ip=0.0.0.0  --fork
复制代码
  1. [root@mysql5-7 mongodb-6.0.4]# cat stop.sh
  2. #!/bin/bash
  3. cd /opt/mongodb-6.0.4
  4. mongod --dbpath /data/mongodb --logpath ./mongod.log --shutdown
复制代码
YUM 安装

  1. cat > /etc/yum.repos.d/mongodb-org-4.4.repo << EOF
  2. [mongodb-org-4.4]
  3. name=MongoDB Repository
  4. baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/
  5. gpgcheck=1
  6. enabled=1
  7. gpgkey=https://pgp.mongodb.com/server-4.4.asc
  8. EOF
复制代码
  1. yum install -y mongodb-org
复制代码
  1. 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 指令集 架构,检查下令如下:
  1. cat /proc/cpuinfo |grep avx
复制代码
一般家用服务器和新出的服务器都支持 avx 指令集,但是老版本的和一些服务器的 cpu 不支持该指令集,建议使用4.4版本的mongoDB

2、MongoDB登录

  1. mongo -u root -p 1233
  2. show dbs
复制代码
3、MongoDB排序时内存巨细限制和创建索引

  1. [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的客户端上直接查看这个参数的值,执行以下语句:
  1. db.runCommand({
  2.    getParameter: 1,
  3.    "internalQueryExecMaxBlockingSortBytes": 1
  4. })
复制代码
以是在4.3以上的版本,执行以下下令:
  1. db.runCommand({
  2.    getParameter: 1,
  3.    "internalQueryMaxBlockingSortMemoryUsageBytes": 1
  4. })
复制代码
扩大排序内存的限制,例如扩大10倍至320M
  1. db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320})
复制代码

4、创建用户

超等管理员
  1. # 进入 mongo
  2. mongo
  3. # 切换为 admin 用户
  4. use admin
复制代码
添加超等管理员账号
  1. db.createUser(
  2.     {
  3.         user:"rootadmin",
  4.         pwd:"123456",
  5.         roles:["root"]
  6.     }
  7. )
复制代码
设置完成,可以通过指令 show users 查看是否设置成功。
开启验证权限
找到MongoDB安装目录下的bin目录中的mongod.cfg文件,开启权限验证功能:
  1. security:
  2.   authorization: enabled
复制代码
创建pro用户,并授予pro用户check_pro和sample_pro2个库的管理权限和读写权限
  1. 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文件,开启权限验证功能:
  1. security:
  2.   authorization: enabled
复制代码

5、Java yaml使用暗码毗连mongodb

  1.   data:
  2.     mongodb:
  3.       host: 127.0.0.1
  4.       username: 账号
  5.       password: 密码
  6.       port: 27017
  7.       uri: mongodb://账号:密码@127.0.0.1:27017/check_pro?authSource=admin
复制代码
uri: mongodb://账号:暗码@127.0.0.1:27017/check_pro?authSource=admin

6、MongoDB增删改查

查询全部
  1.     db.collectionName.find({});
复制代码
查询+格式化表现
  1.     db.collectionName.find({}).pretty();
复制代码
查询排序
  1.     db.collectionName.find({"userId":100012}).sort({"updateTime":-1});
复制代码
更新符合条件的全部数据(注:使用前,先find执行,以确定更新的范围符合要求)
  1.     db.collectionName.update({"userId":233290,"shortName":"LCC"},{$set:{"money":"2000","freezeMoney":"0"}},{multi:true});
复制代码
删除符合条件的全部数据记录(注:使用前,先find执行,以确定删除的范围符合要求)
  1.     db.collectionName.remove({"userId":100012});
复制代码
删除全部数据但保留集合
  1.     db.collectionName.remove({});
复制代码
删除数据及集合本身(慎用)
  1.     db.collectionName.drop();
复制代码
新增集合及插入数据(没有集合=创建集合+插入新记录,有集合=插入新记录)
  1.     db.collectionName.save({"usid":123});
  2.     或
  3.     db.collectionName.insert({"uu":123});
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4