MemSQL:Table 是分布式的table。你不能从叶子查询它

MemSQL: Table is a distributed table. You cannot query it from a leaf

我已经在一台服务器上安装了 MemSQL 用于测试,并创建了三个表,如本例所述:

MEMsql - how to run queries

我可以通过 ssh 从 Memsql 客户端 运行ning 中查询数据库,没有任何问题。但是,每当我尝试在 PHP 中以编程方式 运行 相同的查询时,我都会收到错误 "Table 'memsql_example.employees' is a distributed table. You cannot query it from a leaf".

生成该错误的 PHP 代码如下:

<?php

  $dbHost="127.0.0.1";
  $dbUser="root";
  $dbPass="";
  $dbName="memsql_example";
  $dbPort=3307;

  // Connect to database
  $mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbName, $dbPort);
  if ($mysqli==false) die ("Error connecting to database\n");

  $sql="select count(*) from employees;";
  $result=$mysqli->query($sql);
  if (!$result) {
    printf("Errormessage: %s\n", $mysqli->error);
    die();
  }

?>

我已经尝试 运行通过将 $dbHost 更改为指向服务器 IP 而不是 127.0.0.1 来从另一台服务器连接上述脚本,但没有成功,因为我遇到了同样的错误。

我盯着这个看了几个小时 - 我做错了什么?

提前致谢...

MemSQL 中的查询应该针对聚合器,默认情况下它将 运行 在端口 3306 上。看起来您正在查询端口 3307,默认情况下它将是您的配置中的一个叶子。