【问题标题】:Fatal error: Class 'CassandraClient' not found in /home/dev001/projects/Thrift/gen-php/cassandraTest.php致命错误:在 /home/dev001/projects/Thrift/gen-php/cassandraTest.php 中找不到类“CassandraClient”
【发布时间】:2023-07-17 03:10:01
【问题描述】:

我已经安装了 cassandra 和 apache Thrift。我创建了一个 PHP 测试页面来测试它。当我运行它时返回以下错误。

致命错误:在第 15 行的 /home/dev001/projects/Thrift/gen-php/cassandraTest.php 中找不到类“CassandraClient”

当我通过 cassandra-cli 检查 cassandra 时,它显示以下错误。

power@power-desktop:/home/dev001$ cassandra-cli
org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused  
    at org.apache.thrift.transport.TSocket.open(TSocket.java:183)
at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81)
    at org.apache.cassandra.cli.CliMain.connect(CliMain.java:79)
    at org.apache.cassandra.cli.CliMain.main(CliMain.java:255)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at  java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at org.apache.thrift.transport.TSocket.open(TSocket.java:178)
... 3 more
Exception connecting to 127.0.0.1/9160. Reason: Connection refused.
Welcome to Cassandra CLI version 1.1.0~rc1

Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.

[default@unknown] 

请告诉我为什么会这样?

【问题讨论】:

    标签: php cassandra thrift


    【解决方案1】:

    似乎您没有在正确的 IP/端口上侦听 cassandra。运行netstat -an 看看它是否正在监听端口 9160。

    话虽如此:

    总之,大众的共识是您应该尽可能避免使用原始节俭并使用维护的客户端库之一:Which PHP client library to use with Cassandra?

    【讨论】:

    • 您采取了哪些步骤进行调试?至少,nestat -an 是否显示在端口 9160 上侦听的任何内容?
    【解决方案2】:

    在您的终端类型中:

    # service cassandra start

    在使用 cassandra 之前。

    这将启动 cassandra 守护进程。它必须在向 cassandra 发送命令之前运行

    【讨论】:

      【解决方案3】:

      我遇到了同样的错误 但是当我通过 cassandra_installation_dir/bin/cassandra 然后“cassandra_installation_dir/bin/cassandra-cli --host 192.168.1.90”启动 cassandra 时,我能够登录。 如果可行,请尝试这种方式。

      【讨论】: