MemSQL:Table是一个分布式表。您无法从叶子中查询它

时间:2017-07-10 13:57:11

标签: memsql

我已在单个服务器上安装了MemSQL进行测试,并创建了三个表,如本例所述:

MEMsql - how to run queries

我可以在通过ssh运行的Memsql客户端中查询数据库而不会出现任何问题。但是,每当我尝试在PHP中以编程方式运行相同的查询时,我都会得到错误"表' memsql_example.employees'是一个分布式表。你不能从叶子中查询它#34;。

生成该错误的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来尝试从其他服务器运行上述脚本,但没有成功,因为我得到了同样的错误。

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

提前致谢...

1 个答案:

答案 0 :(得分:1)

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