Php Can';t通过PDO连接到SphinxQL,但可通过端口9306上的终端进行can连接

Php Can';t通过PDO连接到SphinxQL,但可通过端口9306上的终端进行can连接,php,mysql,pdo,sphinx,Php,Mysql,Pdo,Sphinx,我有斯芬克斯搜索共享主机。我可以通过终端连接到sphinxql,但不能在php文件中使用PDO连接。它超时了。我想如果托管公司的端口9306被阻塞,我将无法通过终端进行连接。感谢您的帮助。下面是PDO连接 $queryIdx = new PDO("mysql:host=2x8.xxx.xxx.xxx; dbname=xxx; port:9306","stevebushe","xxx") 通过终端连接时,我会: mysql -P9306 --protocol=tcp 我认为这里的关键是,在终端

我有斯芬克斯搜索共享主机。我可以通过终端连接到sphinxql,但不能在php文件中使用PDO连接。它超时了。我想如果托管公司的端口9306被阻塞,我将无法通过终端进行连接。感谢您的帮助。下面是PDO连接

$queryIdx = new PDO("mysql:host=2x8.xxx.xxx.xxx; dbname=xxx; port:9306","stevebushe","xxx")
通过终端连接时,我会:

mysql -P9306 --protocol=tcp
我认为这里的关键是,在终端中,当连接到索引所在的位置时,我不必指定数据库。通过上面的终端连接,我可以很好地看到索引。如果连接到关联的数据库,则索引不可用


我想知道有没有一种连接方法可以在不指定数据库的情况下进行PDO连接?当我这样做时,我得到一个错误“没有选择数据库”

已解决。配置sphinx.conf中的侦听端口规范必须设置为3306或server defaul。由于某种原因,pdo连接也必须设置为127.0.0.1上的端口9306。不在dsn上指定数据库名称[根据文档,这是可选的]。出于某些原因,这项工作完美无瑕。我现在正在获取所有搜索数据

$queryIdx = new PDO("mysql:host=127.0.0.1;port=9306","username","password");

您确定您的凭据正确吗?您确定可以远程连接到计算机吗?MySQL通常位于防火墙后面,这是有充分理由的。将端口作为第四个参数传入。默认端口为3306。是。我可以通过终端毫无问题地连接。如果我没有指定端口9306,我可以连接PDO。等等,如果你没有指定端口,你可以连接,但是如果你指定了端口,你就不能连接?那么不指定端口吗?或者如果你需要的话,展示一下你是如何通过港口的。嗨,艾恩伯。。我刚刚编辑了关于PDO和终端连接信息的更多细节问题