我目前正在参与创建一个API,该API使用带有3个节点的Cassandra集群来存储数据。我使用PHP 5.6.17,Cassandra 2.2.3和Datastax PHP Driver 1.1.0在我的本地机器上开发它,一切都很顺利。
但是,我们决定转移到远程Cassandra集群(3.4使用本机协议4)并且我无法通过PHP访问它,因为我收到以下错误:发生错误:16777226 - 没有可用于控件的主机连接
有趣的是,使用远程集群的ip并使用DevCenter,我设法连接到该集群,创建一个新的密钥空间(SimpleStrategy,RF:2),创建一个新表并添加一行数据。 / p>
生成PHP代码的错误如下:
$cluster = \Cassandra::cluster()
->withContactPoints('x.x.x.x')
->build();
$keyspace = 'foo';
$session = $cluster->connect($keyspace);
最后一行是产生错误的那一行。但是,如果我尝试使用$cluster = \Cassandra::cluster()->build();
连接到本地cassandra集群,那么它就像魅力一样。
有没有人知道为什么会这样?
答案 0 :(得分:0)
尝试这些解决方案
添加" - > withPort(port_number)"默认值是9042 要么 检查防火墙是否阻止主机访问