我已在单个服务器上安装了MemSQL进行测试,并创建了三个表,如本例所述:
我可以在通过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来尝试从其他服务器运行上述脚本,但没有成功,因为我得到了同样的错误。
我已经盯着这几个小时了 - 我做错了什么?
提前致谢...
答案 0 :(得分:1)
MemSQL中的查询应针对聚合器,默认情况下聚合器将在端口3306上运行。看起来您正在查询端口3307,默认情况下它将在您的配置中成为叶子。