使用Java中的“PasswordAuthenticator”访问Cassandra数据库

使用Java中的“PasswordAuthenticator”访问Cassandra数据库,java,cassandra,datastax-java-driver,Java,Cassandra,Datastax Java Driver,我在Cassandra.yaml文件中将我的Cassandra数据库的authenticator值更改为“PasswordAuthenticator”。 之前,我使用以下代码使用java连接到数据库 public void connect(String node) { cluster = Cluster.builder() .addContactPoint(node).build(); Metadata metadata = cluster.get

我在Cassandra.yaml文件中将我的Cassandra数据库的authenticator值更改为“PasswordAuthenticator”。 之前,我使用以下代码使用java连接到数据库

public void connect(String node) {
      cluster = Cluster.builder()
            .addContactPoint(node).build();
      Metadata metadata = cluster.getMetadata();
      System.out.printf("Connected to cluster: %s\n", 
            metadata.getClusterName());
      for ( Host host : metadata.getAllHosts() ) {
         System.out.printf("Datatacenter: %s; Host: %s; Rack: %s\n",
               host.getDatacenter(), host.getAddress(), host.getRack());
      }
      session = cluster.connect();
   }
现在这个代码给了我一个错误提示

Exception in thread "main" com.datastax.driver.core.exceptions.AuthenticationException: Authentication error on host /127.0.0.1: Host /127.0.0.1 requires authentication, but no authenticator found in Cluster configuration

我知道我需要用我的超级用户用户名和密码连接到数据库。在使用java连接到数据库时,我如何提供这些详细信息?

您可以通过将.withCredentials方法添加到群集生成器中来实现,如下所示:

  cluster = Cluster.builder()
        .addContactPoint(node)
        .withCredentials("yourusername", "yourpassword")
        .build();

您可以通过将.withCredentials方法添加到群集生成器来完成此操作,如下所示:

  cluster = Cluster.builder()
        .addContactPoint(node)
        .withCredentials("yourusername", "yourpassword")
        .build();