问题:
SpringBoot整合MongoDB,启动测试类报错
报错信息:
MongoCredential{mechanism=SCRAM-SHA-1, userName='', source='xxxx', password=<hidden>, mechanismProperties=<hidden>}
at com.mongodb.internal.connection.SaslAuthenticator.wrapException(SaslAuthenticator.java:271)
at com.mongodb.internal.connection.SaslAuthenticator.getNextSaslResponse(SaslAuthenticator.java:136)
at com.mongodb.internal.connection.SaslAuthenticator.access$100(SaslAuthenticator.java:47)
at com.mongodb.internal.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:62)
at com.mongodb.internal.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:56)
at com.mongodb.internal.connection.SaslAuthenticator.doAsSubject(SaslAuthenticator.java:278)
at com.mongodb.internal.connection.SaslAuthenticator.authenticate(SaslAuthenticator.java:56)
at com.mongodb.internal.connection.DefaultAuthenticator.authenticate(DefaultAuthenticator.java:53)
at com.mongodb.internal.connection.InternalStreamConnectionInitializer.authenticate(InternalStreamConnectionInitializer.java:168)
at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:63)
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:144)
at com.mongodb.internal.connection.UsageTrackingInternalConnection.open(UsageTrackingInternalConnection.java:51)
at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.open(DefaultConnectionPool.java:431)
at com.mongodb.internal.connection.DefaultConnectionPool.get(DefaultConnectionPool.java:115)
at com.mongodb.internal.connection.DefaultConnectionPool.get(DefaultConnectionPool.java:100)
at com.mongodb.internal.connection.DefaultServer.getConnection(DefaultServer.java:96)
at com.mongodb.internal.binding.ClusterBinding$ClusterBindingConnectionSource.getConnection(ClusterBinding.java:123)
at com.mongodb.client.internal.ClientSessionBinding$SessionBindingConnectionSource.getConnection(ClientSessionBinding.java:135)
at com.mongodb.internal.operation.OperationHelper.withConnectionSource(OperationHelper.java:648)
at com.mongodb.internal.operation.OperationHelper.withConnection(OperationHelper.java:612)
at com.mongodb.internal.operation.CreateCollectionOperation.execute(CreateCollectionOperation.java:346)
at com.mongodb.internal.operation.CreateCollectionOperation.execute(CreateCollectionOperation.java:56)
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:187)
at com.mongodb.client.internal.MongoDatabaseImpl.executeCreateCollection(MongoDatabaseImpl.java:309)
at com.mongodb.client.internal.MongoDatabaseImpl.createCollection(MongoDatabaseImpl.java:269)
at org.springframework.data.mongodb.core.MongoTemplate.lambda$doCreateCollection$29(MongoTemplate.java:2437)
at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:526)
... 35 more
Caused by: com.mongodb.MongoCommandException: Command failed with error 18 (AuthenticationFailed): 'Authentication failed.' on server xxxxxx:27017. The full response is {"ok": 0.0, "errmsg": "Authentication failed.", "code": 18, "codeName": "AuthenticationFailed"}
at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:175)
at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:358)
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:279)
at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:83)
at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:33)
at com.mongodb.internal.connection.SaslAuthenticator.sendSaslStart(SaslAuthenticator.java:227)
at com.mongodb.internal.connection.SaslAuthenticator.getNextSaslResponse(SaslAuthenticator.java:134)
我的问题
配置认证的的库(authentication-database)错了,因为我的账号密码信息在admin库里。
authentication-database: admin
spring:
data:
mongodb:
host: 127.0.0.1
port: 27017
database: mini
option:
max-connection-idle-time: 1500
max-connection-per-host: 200
max-wait-time: 60000
max-connection-life-time: 0
connect-timeout: 10000
socket-timeout: 60000
password: '*sxasasda'
username: user
authentication-database: admin
还有一种可能就是密码需要加单引号
参考:
https://blog.csdn.net/qq_45186545/article/details/107553692