Подключитесь к командной строке SphinxQL через Linux
Я пытаюсь подключиться к серверу SphinxQL через Linux с командной строкой следующим образом:
> mysql -P 9306
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
У моего конфигурационного файла Sphinx есть 2 записи прослушивания:
listen = 9312
listen = 9306:mysql41
Выполняется
searchd daemon:
> 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?
Любой намек будет оценен. Спасибо заранее!
Ответы
Ответ 1
клиент mysql полностью игнорирует параметр -P, если он обнаруживает, что mysql работает в unix-socket. Так что даже если вы запрашиваете порт sphinxQL, вы подключаетесь к mysql
Использование
mysql -P9306 --protocol=tcp
чтобы сообщить клиенту игнорировать сокет.
Pro Совет:
mysql -P9306 --protocol=tcp --prompt='sphinxQL> '
который служит полезным постоянным напоминанием о том, что вы подключены к sphinx, а не mysql:)
Ответ 2
Работает для меня:
mysql -P 9306 -h 0
Ответ 3
Я столкнулся с этим недавно. Я смог войти в Sphinx через оболочку mysql, комментируя конфигурацию listen
, которая не указала MySQL. Это может не сработать для вас, если вам все равно нужно добраться до searchd
через API.