gpt4 book ai didi

java - 关于OpenLRW部署到mongo docker实例时出现异常

转载 作者:行者123 更新时间:2023-12-02 12:15:25 25 4
gpt4 key购买 nike

已解决:

我必须在没有 --auth 的情况下运行 docker 镜像...

$ docker run -ti --rm -p 30000:27017 -v /srv/mongo:/data/db -e MONGOD_OPTIONS='--nojournal --smallfiles --noprealloc' arkadi/mongodb /sbin/my_init -- bash -l

我需要实现一个学习记录存储(LRS),能够使用 java 或 scala 将数据保存到 cassandra 实例中。我找到了这个项目,https://github.com/Apereo-Learning-Analytics-Initiative/OpenLRW它使用 mongo 2.6 作为主要后端,并使用 java8 和 spring-boot 编写。

这看起来是一个很好的起点,我只需将 cassandra 集成为新的依赖项,构建一些连接器,但是当我第一次尝试运行时,我收到了一个异常:

Caused by: com.mongodb.MongoQueryException: Query failed with error code 13 and error message 'not authorized for query on test.tenant' on server 172.17.0.3:27017
at com.mongodb.connection.ProtocolHelper.getQueryFailureException(ProtocolHelper.java:131)
at com.mongodb.connection.QueryProtocol.execute(QueryProtocol.java:303)
at com.mongodb.connection.QueryProtocol.execute(QueryProtocol.java:54)
at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:159)
at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:286)
at com.mongodb.connection.DefaultServerConnection.query(DefaultServerConnection.java:209)
at com.mongodb.operation.FindOperation$1.call(FindOperation.java:496)
at com.mongodb.operation.FindOperation$1.call(FindOperation.java:482)
at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:239)
at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:212)
at com.mongodb.operation.FindOperation.execute(FindOperation.java:482)
at com.mongodb.operation.FindOperation.execute(FindOperation.java:79)
at com.mongodb.Mongo.execute(Mongo.java:772)
at com.mongodb.Mongo$2.execute(Mongo.java:759)
at com.mongodb.DBCollection.findOne(DBCollection.java:777)
at com.mongodb.DBCollection.findOne(DBCollection.java:747)
at com.mongodb.DBCollection.findOne(DBCollection.java:694)
at org.springframework.data.mongodb.core.MongoTemplate$FindOneCallback.doInCollection(MongoTemplate.java:2143)
at org.springframework.data.mongodb.core.MongoTemplate$FindOneCallback.doInCollection(MongoTemplate.java:2127)
at org.springframework.data.mongodb.core.MongoTemplate.executeFindOneInternal(MongoTemplate.java:1901)
... 165 more

这是full stacktrace

我这样运行 mongo 实例:

$ docker run -ti --rm -p 30000:27017 -v /srv/mongo:/data/db -e MONGOD_OPTIONS='--nojournal --smallfiles --noprealloc --auth' arkadi/mongodb /sbin/my_init -- bash -l
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
No SSH host key available. Generating one...
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
Creating SSH2 ED25519 key; this may take some time ...
invoke-rc.d: policy-rc.d denied execution of restart.
*** Running /etc/my_init.d/90_mongo-admin.sh...
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 95
*** Running bash -l...
note: noprealloc may hurt performance in many applications
root@4b190dded9e7:/# 2017-09-14T13:51:29.119+0000 [initandlisten] MongoDB starting : pid=103 port=27017 dbpath=/data/db 64-bit host=4b190dded9e7
2017-09-14T13:51:29.119+0000 [initandlisten] db version v2.6.7
2017-09-14T13:51:29.119+0000 [initandlisten] git version: a7d57ad27c382de82e9cb93bf983a80fd9ac9899
2017-09-14T13:51:29.119+0000 [initandlisten] build info: Linux build7.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2017-09-14T13:51:29.119+0000 [initandlisten] allocator: tcmalloc
2017-09-14T13:51:29.119+0000 [initandlisten] options: { security: { authorization: "enabled" }, storage: { journal: { enabled: false }, preallocDataFiles: false, smallFiles: true } }
2017-09-14T13:51:29.125+0000 [initandlisten] waiting for connections on port 27017
Sep 14 13:51:29 4b190dded9e7 syslog-ng[105]: syslog-ng starting up; version='3.5.3'

root@4b190dded9e7:/# mongo
MongoDB shell version: 2.6.7
connecting to: test
2017-09-14T13:51:47.087+0000 [initandlisten] connection accepted from 127.0.0.1:47862 #1 (1 connection now open)
2017-09-14T13:51:47.087+0000 [conn1] note: no users configured in admin.system.users, allowing localhost access
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
...

mongo docker实例的ip是:

root@4b190dded9e7:/# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:03
inet addr:**172.17.0.3** Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4500 (4.5 KB) TX bytes:0 (0.0 B)

我可以从本地主机访问此 docker 实例:

$ ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.041 ms
64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.044 ms
64 bytes from 172.17.0.2: icmp_seq=5 ttl=64 time=0.043 ms

这就是我实际的 application.yaml 文件的样子:

# different mongo instance running within a docker container
spring.data.mongodb.host: 172.17.0.3
spring.data.mongodb.port: 27017
server.port: 9966
spring.profiles: default
matthews.security.jwt:
tokenExpirationTime: 240 # Number of minutes
refreshTokenExpTime: 360 # Minutes
tokenIssuer: http://example.com
tokenSigningKey: changeme

endpoints:
enabled: false
info:
enabled: true

info:
build:
artifact: @project.artifactId@
name: @project.name@
description: @project.description@
version: @project.version@

matthews.users:
encrypted: false
adminuser : ${random.value}
password: ${random.value}
emailAddress: ${random.value}@unicon.net

我使用以下命令运行该项目:

`mvn clean package spring-boot:run` 

看起来我必须在运行 jar 文件之前在 mongo 实例中执行其他操作,不是吗?

非常感谢。

最佳答案

您似乎正在尝试连接到使用无需用户名和密码的身份验证的 mongodb 实例。

你应该尝试:

  • 向您的配置文件提供用户名和密码以提供凭据
  • 如果是开发环境,请禁用身份验证并测试您的应用程序是否连接到 mongod 实例

关于java - 关于OpenLRW部署到mongo docker实例时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46221443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com