明道云用 root 用户访问数据库报错:
2024-09-10T14:19:42.338+0800 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:814:19
shellHelper@src/mongo/shell/utils.js:704:15
@(shellhelp2):1:1
eheng 2024-09-11 10:05:48
- 这里用
帐号mingdao,密码*****
连接也是提示 not authorized;- 目前用 root 用户进到 MongoDB,执行语句都提示 not authorized,查看 admin 库绑定用户为空数组[];
问题下午已解决,感谢老师答疑。
eheng 2024-09-11 10:05:48
- 这里用
帐号mingdao,密码*****
连接也是提示 not authorized;- 目前用 root 用户进到 MongoDB,执行语句都提示 not authorized,查看 admin 库绑定用户为空数组[];
联系下你的销售顾问,创建个服务群,远程看下吧
eheng 2024-09-10 15:56:40YAML 文件里的 url 是这个,这个算配置了认证吗
ENV_MONGODB_URI`:mongo mongodb://mingdao:******@127.0.0.1:27017
- 这里用
帐号mingdao,密码*****
连接也是提示 not authorized; - 目前用 root 用户进到 MongoDB,执行语句都提示 not authorized,查看 admin 库绑定用户为空数组[];
eheng 2024-09-10 15:56:40YAML 文件里的 url 是这个,这个算配置了认证吗
ENV_MONGODB_URI`:mongo mongodb://mingdao:******@127.0.0.1:27017
算,默认不会有这个变量,只有开启 MongoDB 认证后,才会加。
mongo mongodb://mingdao:*****@127.0.0.1:27017/mdapps
你这样在容器内测试连接 mdapps 库,应该可以连的上
如果你要以管理员身份登录到 mognodb,那么就换成你创建的 admin 库的用户密码,认证库参数为 admin
eheng 2024-09-10 15:35:37
- 连接业务库也是的,我用 compass 可视化软件,用 root 账户连接服务器,也是提示认证失败,通过服务器 mongodb.log 查看具体报错提示:SCRAM-SHA-1 authentication failed for root on admin from client xx.xx.xx.xx:xx; AuthenticationFailed: SCRAM-SHA-1 authentication failed, storedKey mismatch;
- 在这个文档里面我用 <5.1.0 的语句:docker exec -it $(docker ps | grep mingdaoyun-community | awk '{print $1}') mongo,进到容器里面执行命令如:db.getUsers(),此种命令也是认证失败;除了一开始的语句:use admin,其它语句也是提示问题帖里图片的的认证失败,权限不足;
- 在社区里某个帖子找到了一个语句:docker exec -it $(docker ps | grep community | awk '{print $1}') bash,运行语句后执行语句也是提示认证失败,权限不足;
- 请问老师这是我哪个步骤操作有问题还是语句有问题呢?
YAML 文件里的 url 是这个,这个算配置了认证吗
ENV_MONGODB_URI`:mongo mongodb://mingdao:******@127.0.0.1:27017
eheng 2024-09-10 15:35:37
- 连接业务库也是的,我用 compass 可视化软件,用 root 账户连接服务器,也是提示认证失败,通过服务器 mongodb.log 查看具体报错提示:SCRAM-SHA-1 authentication failed for root on admin from client xx.xx.xx.xx:xx; AuthenticationFailed: SCRAM-SHA-1 authentication failed, storedKey mismatch;
- 在这个文档里面我用 <5.1.0 的语句:docker exec -it $(docker ps | grep mingdaoyun-community | awk '{print $1}') mongo,进到容器里面执行命令如:db.getUsers(),此种命令也是认证失败;除了一开始的语句:use admin,其它语句也是提示问题帖里图片的的认证失败,权限不足;
- 在社区里某个帖子找到了一个语句:docker exec -it $(docker ps | grep community | awk '{print $1}') bash,运行语句后执行语句也是提示认证失败,权限不足;
- 请问老师这是我哪个步骤操作有问题还是语句有问题呢?
- 你环境是否开启了 MongoDB 的认证,如果没开启,那在容器中执行 mongo 就可以登陆
- 如果已经开启,正常情况
ENV_MONGODB_URI
变量值应该是你业务库的连接 url,可以在容器内,通过mongo mongodb://hap:*****@127.0.0.1:27017/mdapps
就可以进入 mdapps 库;或者 通过mongo -u hap -p ****** --authenticationDatabase mdapps
也可以进入到 mdapps;
上面是以 mdapps 为例,如果你要以管理员身份登录到 mognodb,那么就换成你创建的 admin 库的用户密码,认证库参数为 admin,例如:mongo -u root -p ****** --authenticationDatabase root
eheng 2024-09-10 15:19:48老师我这连接就提示认证失败,用 docker-compose.yaml 里定义的 URI 里的 user 和 pwd 登录也是一样
- 连接业务库也是的,我用 compass 可视化软件,用 root 账户连接服务器,也是提示认证失败,通过服务器 mongodb.log 查看具体报错提示:SCRAM-SHA-1 authentication failed for root on admin from client xx.xx.xx.xx:xx; AuthenticationFailed: SCRAM-SHA-1 authentication failed, storedKey mismatch;
- 在这个文档里面我用 <5.1.0 的语句:docker exec -it $(docker ps | grep mingdaoyun-community | awk '{print $1}') mongo,进到容器里面执行命令如:db.getUsers(),此种命令也是认证失败;除了一开始的语句:use admin,其它语句也是提示问题帖里图片的的认证失败,权限不足;
- 在社区里某个帖子找到了一个语句:docker exec -it $(docker ps | grep community | awk '{print $1}') bash,运行语句后执行语句也是提示认证失败,权限不足;
- 请问老师这是我哪个步骤操作有问题还是语句有问题呢?
eheng 2024-09-10 15:19:48老师我这连接就提示认证失败,用 docker-compose.yaml 里定义的 URI 里的 user 和 pwd 登录也是一样
docker-compose.yaml 里定义的 URI 里的 user 和 pwd 是业务库的
你可以先查一下 MongoDB 的连接 url 语法,可以参考:https://www.runoob.com/mongodb/mongodb-connections.html
或者你直接连接 admin 管理员库,以示例的文档为例,创建的 admin 库下账号是 root,就用 mongo -u root -p root密码 --authenticationDatabase admin
方式登录到 MongoDB 中
吴言飞(Team) 2024-09-10 14:52:52mingdaoyun-sc 容器内执行
mongo
命令即可登录到 MongoDB 数据库中,默认情况下没有认证的;
如果你自定义开启了认证创建账号密码,就要通过mongo -u 用户名 -p 密码 --authenticationDatabase admin
方式登录到 MongoDB 中
老师我这连接就提示认证失败,用 docker-compose.yaml 里定义的 URI 里的 user 和 pwd 登录也是一样
mingdaoyun-sc 容器内执行 mongo
命令即可登录到 MongoDB 数据库中,默认情况下没有认证的;
如果你自定义开启了认证创建账号密码,就要通过 mongo -u 用户名 -p 密码 --authenticationDatabase admin
方式登录到 MongoDB 中
请教各位老师,这种情况应该如何定位和解决问题。