我无法在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');
我可以在其中放置我的登录名和密码吗?
答案 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 KEYSPACE和CREATE TABLE,如下所示:
$session->execute('CREATE TABLE ...')
我建议学习很久以前取代Thrift的CQL(卡桑德拉查询语言)。很好的资源是“ Cassandra。权威指南”(该书的第三版最近发布)和freely available from the DataStax site。