【发布时间】:2017-06-16 12:26:32
【问题描述】:
我无法连接到 Cassandra DB。我已经尝试使用端口号 9042,但它抛出了下面给出的异常
java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2097152000)!.
因此,我使用相同的端口号 9160。但它给了我以下例外
[main] ERROR org.bigsql.cassandra2.jdbc.CassandraConnection - Impossible to connect to server Server Name : org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection timed out: connect
请提供相同的解决方案。请参阅下面我用于连接的代码。
URL="jdbc:cassandra://server name:9160/schema";
address =address;
user=Username;
pass=Password;
Class.forName("org.bigsql.cassandra2.jdbc.CassandraDriver");
conn = DriverManager.getConnection(URL,user,pass);
【问题讨论】:
-
什么 cassandra 版本?您使用的是哪个驱动程序(和版本)?你确定这两个版本匹配吗?
-
您好,JChrist,感谢您的回复。我正在使用 Cassandra 2.1-2 驱动程序。我正在使用 cassandra-2.1-2.jdbc41.jar 。而不是使用 datastax 类(cassandra-driver-mapping-3.0.2.jar)。我正在使用 bisql.cassandra2 驱动程序。
-
您是否检查过是否有防火墙阻止您的连接?
-
这个错误似乎表明
server name不是正确的主机名,或者cassandra没有在端口9160上运行。 -
嗨,马克,我已经检查了服务器名称。主机名或服务器名正确。对于端口号 9042,它正在 DataStax 中连接。但是使用 9042 端口号的 java 代码会抛出上面指定的异常。是否由于 jar 版本冲突而发生该错误。