使用 Java DBCP 连接到 Cassandra

Connecting to Cassandra using Java DBCP

我使用 Apache Common DBCP 库中的“BasicDataSource”class 并使用 DataStax 驱动程序“com.simba.cassandra.[=17= 连接到 Cassandra 数据库 Java ]”。当 Cassandra 配置了“authenticator”时 设置为“AllowAllAuthenticator”,我可以连接到数据库。但是,当我启用“PasswordAuthenticator”并在“BasicDataSource”对象中设置 username/password 时,我无法连接并收到异常“主机/IP Address:Port 上的身份验证错误:主机/IP Address:Port需要身份验证,但在集群配置中找不到身份验证器。”。建立安全连接需要什么?

我已经回答了我自己的问题。对于遇到相同问题的任何人,解决方案是在 JDBC 连接字符串中包含选项“AuthMech=1”,因为经过身份验证的连接需要它。以下摘自《Simba Cassandra JDBC Driver with SQL Connector》安装配置指南:

“AuthMech

这个属性指定驱动程序是连接到Cassandra还是Astra数据库, 以及驱动程序是否对连接进行身份验证。

  • 0:驱动程序连接到 Cassandra 数据库但未验证 连接。
  • 1:驱动程序连接到Cassandra数据库,并验证 使用用户名和密码连接。
  • 2:驱动程序连接到Astra数据库,并验证连接 使用用户名、密码和安全连接包。"

参考:https://docs.datastax.com/en/driver-matrix/doc/latestSimbaCassJDBCDriver.html(第 31 页)