我目前正在尝试通过 PDO 或 MySqli 连接器连接到 Sphinx 以使用 SphinxQL,但是,尽管 Sphinx 没有用户名/密码设置并且我应该能够在不使用此类设置的情况下进行连接,但我得到了一个用户/传递错误:
Warning: mysqli_connect(): (HY000/1045): Access denied for user ''@'localhost' (using password: NO)
我的连接尝试如下(在本例中为 mysqli:)
$con = mysqli_connect('localhost', '', '', '', '9306');
上面的 localhost 适用于 Mysql,我也尝试过 127.0.0.1 但没有成功(这给了我一个连接被拒绝的错误)。
我的 sphinx conf 如下所示:
listen = 9306:mysql41
searchd 正在运行,并且通过 shell 的连接正常工作:
[root@localhost vagrant]# mysql -h0 -P 9306
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 Server version: 2.2.11-id64-release (95ae9a6)
正如您在上面看到的,我使用 Sphinx v.2.2.11
为了以防万一,我还重新检查了端口分配:
[root@localhost vagrant]# netstat -tulpn | grep LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1475/master
tcp 0 0 127.0.0.1:9306 0.0.0.0:* LISTEN 21599/searchd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 4013/mysqld
感谢任何帮助。
最佳答案
奇怪的事情有时会发生,而且没有合理的解释。如前所述,我在 Windows 10 主机上使用 vagrant (Centos 7.5)。无论如何,连接都无法工作。休息一天后,我的电脑进入“ sleep ”模式。第二天,撤销系统后一切正常。我能说什么 ́_(ツ)_/́ 。问题解决了。
关于PHP/连接 Sphinx 需要用户名/密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688450/