我在Windows 7机器(64位)中设置了一个Cassandra实例0.7。
cassandra服务器已启动并正在运行,并且已成功侦听thrift客户端。我已经通过成功创建自己的示例键空间和列族来测试实例。
现在,我必须从我的PHP脚本连接到这个Cassandra实例。我尝试使用 thobbs \ phpcassa 。
我遇到了麻烦。在安装中,它提到了针对UNIX / Linux系统的'make,build'的步骤,但没有提到Windows。
我不知道接下来要做什么,我试图复制我的htdocs文件夹(apache)中的phpcassa文件夹,并创建了一个测试文件cassandra_test.php,内容如下:
<?php
ini_set('display_errors',1);
require_once('phpcassa/connection.php');
require_once('phpcassa/columnfamily.php');
$servers = array("localhost:9160");
$pool = new ConnectionPool("demo", $servers);
$column_family = new ColumnFamily($pool, 'user');
?>
演示是我从命令提示符创建的示例键空间。另外,我在演示密钥空间中创建了一个示例column_family user 。
在浏览器中执行此脚本会产生以下异常:
Fatal error: Uncaught exception 'cassandra_NotFoundException' in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\phpcassa\columnfamily.php:198
Stack trace: #0 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\cassandra_test.php(10):
ColumnFamily->__construct(Object(ConnectionPool), 'user') #1 {main} thrown in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\phpcassa\columnfamily.php
on line 198
我认为phpcassa无法找到我当地的cassandra实例。怎么检查?
另外
$pool = new ConnectionPool("demo", $servers);
没有给出任何错误/警告。所以,我完全不确定这个例外的根本原因是什么? 我是cassandra和PHPcassa的新手。真的很抱歉,如果这个问题听起来很琐碎。
答案 0 :(得分:2)
此异常表示它能够连接到您的Cassandra实例(可能没有任何问题),但键空间“demo”中的ColumnFamily“user”不存在。
尝试启动cassandra-cli并验证“show keyspaces”;列出正确键空间内的列族。另外请注意,这里的名称区分大小写,如果这会产生影响。