Java Couchbase存储桶身份验证错误

Java Couchbase存储桶身份验证错误,java,sdk,nosql,couchbase,bucket,Java,Sdk,Nosql,Couchbase,Bucket,使用Couchbase 5.0及其Java客户端2.0.3,我有以下错误 只需按照以下说明打开铲斗: 如前所述,对于基本的本地配置,只需要两行代码: Cluster cluster = CouchbaseCluster.create(); Bucket bucket = cluster.openBucket("hero"); 这应该会打开localhost集群(实际上是这样),然后打开一个名为“hero”的bucket,它实际上存在于我的Couchbase服务器中 尽管如此,我还是不断发现以

使用Couchbase 5.0及其Java客户端2.0.3,我有以下错误

只需按照以下说明打开铲斗:

如前所述,对于基本的本地配置,只需要两行代码:

Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket("hero");
这应该会打开localhost集群(实际上是这样),然后打开一个名为“hero”的bucket,它实际上存在于我的Couchbase服务器中

尽管如此,我还是不断发现以下错误:

2017-11-08 00:40:25.546 ERROR 1077 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket "hero" do not match.] with root cause

com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket "hero" do not match.
    at com.couchbase.client.java.CouchbaseAsyncCluster$1.call(CouchbaseAsyncCluster.java:156) ~[java-client-2.0.3.jar:2.0.3]
    at com.couchbase.client.java.CouchbaseAsyncCluster$1.call(CouchbaseAsyncCluster.java:146) ~[java-client-2.0.3.jar:2.0.3]
    at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:77) ~[rxjava-1.0.4.jar:1.0.4]
    at rx.internal.operators.OperatorMap$1.onError(OperatorMap.java:49) ~[rxjava-1.0.4.jar:1.0.4]
    at rx.internal.operators.NotificationLite.accept(NotificationLite.java:147) ~[rxjava-1.0.4.jar:1.0.4]
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:177) ~[rxjava-1.0.4.jar:1.0.4]
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.access$000(OperatorObserveOn.java:65) ~[rxjava-1.0.4.jar:1.0.4]
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:153) ~[rxjava-1.0.4.jar:1.0.4]
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:47) ~[rxjava-1.0.4.jar:1.0.4]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_151]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_151]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_151]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_151]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_151]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_151]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]
不知怎的,它是在询问桶的密码。但是Couchbase中没有在bucket级别配置密码


有人知道吗?

在Couchbase Server 5.0中,引入了基于角色的访问控制。现在必须创建一个名称与bucket名称匹配的用户,并在打开bucket时使用该用户的密码。用户必须具有对bucket的访问权限

Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket("hero", "password");
有关更多信息,请参阅Couchbase论坛帖子:

SDK用户

  • 继续使用您当前的SDK版本访问具有适当权限且与bucket同名的用户所在的bucket
  • 升级至最新SDK版本,以访问现在可用的较新身份验证和用户管理功能

完美的答案。我还没有看到新的规格。谢谢你救了我一天。谢谢对于那些来这里寻求解决“bucket x密码不匹配”问题的人来说,使用Couchbase Spark connector时,同样适用于这里。创建一个名为bucker name的用户,密码为您选择的任意密码,然后提供用户/Spark会话密码,例如:
Spark…config(“Spark.couchbase.bucket.Player”,“player123”)