【问题标题】:PHP can't connect to Sphinx on Live SitePHP 无法连接到 Live Site 上的 Sphinx
【发布时间】:2014-02-10 05:47:20
【问题描述】:

我收到错误“警告:mysqli::mysqli(): (HY000/2005): Unknown MySQL server host '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都试过了。

谁能帮我搞定这个工作?

这是我的第一个问题,如果我需要更改此问题的格式,请告诉我。

【问题讨论】:

    标签: php mysql sphinx


    【解决方案1】:

    作为命令行客户端,你可能需要明确告诉它使用 tcp

    mysql -P 9306 --protocol=tcp
    

    如果 mysql 客户端在本地机器上找到一个 mysql 服务器,它会忽略 -P 参数,这违反直觉。

    至于 PHP,不知道你所拥有的是否可以工作,但我倾向于使用

    $sphinx = new mysqli("127.0.0.1", "", "", "", 9306);
    

    这对我有用。

    【讨论】:

    • 感谢您的快速回复!现在一切正常。我不确定为什么“127.0.0.1:9306”可以在我的个人计算机上运行,​​但您使用的运行良好。如果可以的话,我会投票!