MemSQL:Table 是分布式的table。你不能从叶子查询它
MemSQL: Table is a distributed table. You cannot query it from a leaf
我已经在一台服务器上安装了 MemSQL 用于测试,并创建了三个表,如本例所述:
我可以通过 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,默认情况下它将是您的配置中的一个叶子。
我已经在一台服务器上安装了 MemSQL 用于测试,并创建了三个表,如本例所述:
我可以通过 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,默认情况下它将是您的配置中的一个叶子。