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


    MongoDB 安装

    二进制安装

    [root@mysql5-7 mongodb-6.0.4]# cat start.sh 
    
    #!/bin/bash
    
    cd /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/bash
    
    cd /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 1233
    
    show 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.1
          username: 账号
          password: 密码
          port: 27017
          uri: 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});
    
  • 相关阅读:
    与世界分享我刚编的mysql http隧道工具-hersql原理与使用
    接口测试,
    【外卖项目实战开发二】
    8条github使用小技巧
    学习记忆——图像篇——记忆古诗词
    dayjs格式转换成日期
    Mermaid画流程图可以实现从一条线中间引出另外一条线吗
    java培训技术SpringMVC视图解析器
    广西建筑工地模板:支模九层桉木模板
    linux 单机安装 kafka
  • 原文地址:https://blog.csdn.net/weixin_45652150/article/details/140293224