无法使用PHP的Cassandra创建密钥空间

时间:2020-07-10 14:02:13

标签: php docker cassandra cqlsh phpcassa

我无法在PHP下在dockercontainer下运行的cassandra上创建键空间。连接似乎还可以,但是我什么也没创造。当我运行DESCRIBE keyspaces;时,默认情况下仅创建了键空间。

我正在使用thobbs/phpcassa捆绑包将php与cassandra连接起来。 我认为问题似乎出在登录名和密码上。

在这个捆绑包中,我没有找到放置它们的位置。当我连接到cassandra容器时,可以通过此命令cqlsh -u cassandra -p cassandra 172.24.0.1 9042

连接

下面是我在index.php上的代码

<?php

require 'vendor/autoload.php';

use phpcassa\ColumnFamily;
use phpcassa\ColumnSlice;
use phpcassa\Connection\ConnectionPool;

$servers = array("172.24.0.1:9042");
$pool = new ConnectionPool("Keyspace2", $servers);


$column_family = new ColumnFamily($pool, 'ColumnFamily1');

我可以在其中放置我的登录名和密码吗?

1 个答案:

答案 0 :(得分:2)

请不要使用thobbs/phpcassa-它非常老,并且在后台使用了旧的Thrift协议...正确的方法是现在与Cassandra一起使用是使用PHP driver from DataStax。在那里完全支持身份验证(doc),如下所示:

$cluster = Cassandra::cluster()
               ->withCredentials("username", "password")
               ->build();
$session = $cluster->connect();

在获得$session之后,您可以使用execute函数来执行CQL语句,例如CREATE KEYSPACECREATE TABLE,如下所示:

$session->execute('CREATE TABLE ...')

我建议学习很久以前取代Thrift的CQL(卡桑德拉查询语言)。很好的资源是“ Cassandra。权威指南”(该书的第三版最近发布)和freely available from the DataStax site