wzy_csdn_001 2024-07-20 10:15 采纳率: 50%
浏览 5
已结题

docker部署Mongodb后输入命令报错?

docker 部署Mongodb,部署完成后创建用户报错,提示Browserslist: caniuse-lite is outdated.如何处理?
部署mongodb的命令为:

docker pull mongo

mkdir -p /home/data/mongodb/data

docker run -d --name mongo --restart=always --privileged=true -p 27017:27017 -v /home/data/mongodb/data:/data/db mongo --auth
docker run -itd --name mongo -v /home/data/mongodb/data:/data/db -p 27017:27017 mongo:4.4 --auth

docker exec -it mongo mongosh admin

db.createUser({ user:'admin',pwd:'admin',roles:[{ role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

执行用户创建的时候就报错了:

img

  • 写回答

34条回答 默认 最新

  • 阿里嘎多学长 2024-07-20 10:15
    关注
    获得0.15元问题酬金

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    从你提供的截图和描述来看,你在使用mongosh尝试创建MongoDB用户时遇到了两个问题:

    1. Browserslist: caniuse-lite is outdated. 这个错误提示通常与Node.js项目有关,但在这里可能是由于MongoDB容器内部的某个服务或脚本引起的。然而,这个错误提示并不是MongoDB命令执行的一部分,它可能是由MongoDB容器内部运行的某个脚本或工具产生的,比如可能是MongoDB的shell客户端mongosh内部的一个Node.js应用。

    2. MongoServerError: command createUser requires authentication 这个错误表明,你在尝试执行createUser命令时没有进行身份验证。在MongoDB中,执行某些操作需要先登录到数据库。

    下面是解决这些问题的步骤:

    解决 Browserslist: caniuse-lite is outdated 错误

    • 这个错误可能不是MongoDB操作失败的直接原因。它可能是由mongosh内部的Node.js环境触发的。你可以尝试忽略这个错误,因为它可能不会影响MongoDB的正常操作。

    • 如果你想要解决这个错误,可以尝试更新mongosh的Node.js依赖。但是,这通常不是必要的,除非你在使用的是一个自定义的或修改过的MongoDB容器。

    解决 createUser 命令需要身份验证的问题

    • 根据错误提示,你需要先登录到MongoDB数据库。在mongosh中,你可以使用以下命令登录:

      use admin
      db.auth('yourAdminUsername', 'yourAdminPassword')
      

      替换yourAdminUsernameyourAdminPassword为你的管理员用户名和密码。

    • 登录后,你应该能够执行createUser命令。但是,从你的截图中可以看到,你在创建用户时的命令语法有误。正确的命令格式应该是:

      db.createUser({
        user: 'bestvike',
        pwd: 'bestvike',
        roles: [
          { role: 'userAdminAnyDatabase', db: 'admin' },
          { role: 'readWriteAnyDatabase', db: 'admin' } // 注意这里应该是一个对象,而不是字符串
        ]
      });
      

      注意,角色数组中的第二个角色应该是一个对象,而不是字符串。

    总结

    • 首先,解决身份验证问题,使用正确的登录命令。
    • 然后,使用修正后的语法重新尝试创建用户。
    • 如果Browserslist错误持续出现并且你确信它影响了MongoDB的操作,那么可能需要进一步调查MongoDB容器内部的情况,或者考虑重新拉取一个干净的MongoDB镜像。

    希望这些步骤能帮助你解决问题。如果还有其他问题,随时欢迎提问。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月28日
  • 赞助了问题酬金15元 7月20日
  • 创建了问题 7月20日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?