当前位置: 首页 > news >正文

CentOS7二进制安装和YUM安装mongodb,服务器无法安装5.0以上的 mongodb 数据库报错 Illegal instruction

文章目录

  • 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_prosample_pro2个库的管理权限和读写权限

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});

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • asp.netWebForm(.netFramework) CSRF漏洞
  • StarRocks分布式元数据源码解析
  • LangChain —— Prompt Templates
  • ArcGIS中国工具(ArcGISCTools)等插件使用体验
  • 多进程优化顶点小说爬虫:加速爬取速度的深度优化策略
  • 二进制部署k8s
  • 异步日志:性能优化的金钥匙
  • Vue封装Tooltip(提示工具)
  • 产业知识图谱:金融科技的创新引擎
  • MFC扩展库BCGControlBar Pro v35.0 - 可视化管理主题等全新升级
  • 在大型企业级应用中,如何优化 XML 数据的存储和检索效率,以满足高并发访问需求?
  • Python打开Excel文档并读取数据
  • Grafana
  • 光学传感器图像处理流程(一)
  • 怎么用PPT录制微课?详细步骤解析!
  • Babel配置的不完全指南
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Flex布局到底解决了什么问题
  • linux安装openssl、swoole等扩展的具体步骤
  • MYSQL 的 IF 函数
  • MySQL-事务管理(基础)
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Vue.js 移动端适配之 vw 解决方案
  • vue总结
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 学习JavaScript数据结构与算法 — 树
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 组复制官方翻译九、Group Replication Technical Details
  • ​香农与信息论三大定律
  • #宝哥教你#查看jquery绑定的事件函数
  • (1)bark-ml
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (ZT)薛涌:谈贫说富
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (九)c52学习之旅-定时器
  • (一)80c52学习之旅-起始篇
  • (原创)可支持最大高度的NestedScrollView
  • ***原理与防范
  • *1 计算机基础和操作系统基础及几大协议
  • .Mobi域名介绍
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net framework4与其client profile版本的区别
  • .net/c# memcached 获取所有缓存键(keys)
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • /dev下添加设备节点的方法步骤(通过device_create)
  • :如何用SQL脚本保存存储过程返回的结果集
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [ Socket学习 ] 第一章:网络基础知识