26

我正在尝试以这种方式通过 Linux命令行连接到SphinxQL服务器:

> mysql -P 9306

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

我的 Sphinx 配置文件有 2 个监听条目:

listen                  = 9312
listen                  = 9306:mysql41

searchd 守护进程正在运行:

> ps ax | grep searchd
10727 ?        S      0:00 /usr/local/sphinx/bin/searchd
10728 ?        Sl     0:00 /usr/local/sphinx/bin/searchd

常规搜索查询完美运行:

> /usr/local/sphinx/bin/search StackOverflow | more

Sphinx 2.0.4-release (r3135)
Copyright (c) 2001-2012, Andrew Aksyonoff
Copyright (c) 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/usr/local/sphinx/etc/sphinx.conf'...
index 'test1': query 'StackOverflow ': returned 2 matches of 2 total in 0.009 sec

displaying matches:
1. document=1788212, weight=1797
        id=1788212
...

那么,我做错了什么?如何访问 SphinxQL 控制台?

任何提示将不胜感激。提前致谢!

4

3 回答 3

72

'mysql' 客户端,如果检测到 mysql 在 unix-socket 上运行,将完全忽略 -P 参数。所以真的,即使你要求 sphinxQL 端口,你正在连接到 mysql

利用

mysql -P9306 --protocol=tcp

告诉客户端忽略套接字。

专家提示:

mysql -P9306 --protocol=tcp --prompt='sphinxQL> '

这可以作为一个有用的持续提醒您连接到 sphinx 而不是 mysql :)

于 2012-08-26T23:25:49.060 回答
11

为我工作:

mysql -P 9306 -h 0
于 2013-01-25T11:21:21.260 回答
2

我最近遇到了这个。通过注释掉listen未指定 MySQL 的配置,我能够通过 mysql shell 进入 Sphinx。如果您仍需要searchd通过 API 访问,这可能对您不起作用。

于 2012-08-26T03:03:31.843 回答