我收到错误“警告:mysqli::mysqli(): (HY000/2005): 未知的 MySQL 服务器主机 '127.0.0.1:9306' (0)”。根据 netstat 命令,端口 9306 已打开,但无法通过 PHP 或命令提示符进行连接。命令提示符连接到端口 9306 上的 MySQL,而不是连接到 sphinx。
导致此问题的代码是:
$sphinx = new mysqli('127.0.0.1:9306');
这是在 Linux 上,Sphinx 版本是 2.0.4。包括2.2.1在内的其他版本已尝试过。
任何人都可以帮我实现这个工作吗?
这是我的第一个问题,因此如果我需要更改该问题的格式,请告诉我。
最佳答案
对于命令行客户端,您可能需要明确告诉它使用 tcp
mysql -P 9306 --protocol=tcp
这是违反直觉的,如果 mysql 客户端在本地计算机上找到 mysql 服务器,它会默默地忽略 -P 参数。
至于 PHP,不知道你所拥有的是否应该工作,但我倾向于使用
$sphinx = new mysqli("127.0.0.1", "", "", "", 9306);
这对我有用。
关于PHP 无法连接到 Live Site 上的 Sphinx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21665041/