MySQL клиент для Sphinxsearch

Как известно, Sphinxsearch поддерживает протокол MySQL (у Сфинкса он называется SphinxQL)  и в этой связи рекомендует использовать именно такой (не API) способ общения с ним.

Т.е. - любой MySQL клиент под Питон - и вуаля.

Увы, Оракл подложил здесь большую свинью, причем, года так с 2012 а то и 2010: именно такие даты в тредах на MySQL форуме, в которых участвовал сам создатель Сфинкса.

Решение, найденное тогда, рекомендовало   - впишите в sphinx.conf  строку, чтобы он представлялся MySQL  сервером конкретной версии (что-то вроде 5.0.37, в треде есть цифры и для более поздней версии коннектора), и Oracle MySQL Python connector

Я описываю это так подробно, потому что проблемы не только у Питонщиков, .Net - программисты обсуждают это на своих ресурсах, и, кажется, Javа-прогерам тоже досталось.

Даже гуру Sphinx  - Игорь Чакрыгин, которому мы все благодарны за цикл постов про поисковый движок, не нашел для .Net ничего лучше, чем воспользоваться старым клиентом.

Не знаю, поможет ли это Питону под Windows - cтарый клиент для Python 3.3, а уже 3.4, но, к счастью, этого и не нужно.

Потому что кроме официального от Orcale в Python есть еще минимум два-три MySQL коннектора
https://pypi.python.org/pypi/mysqlclient
https://github.com/PyMySQL/PyMySQL
https://pythonhosted.org/oursql/ ( не поставился, подозреваю, что компилить)

и второй стразу же заработал (на первый еще примеры нужно искать)

db = pymysql.connect(host='127.0.0.1',
                             port=9306,
                             user='',
                             passwd='',
                             db='',
                             cursorclass=pymysql.cursors.DictCursor)




еще были экзотические идеи вроде изменения параметров соединения, http://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html


P.S. кстати, Jango деклаириует поддержку из коробки
http://django-sphinxql.readthedocs.org/en/latest/indexes.html


примеры использования MySQL коннектора:
http://mysql-python.sourceforge.net/MySQLdb.html


неплохая таблица о состоянии MySQL  клиентов  к Питон

MySQL DB Drivers Comparison


ProjectPyPi hostedEventlet friendlyPython 3 compatibilityMaturity and/or stabilityComment
MySQL-Connector-PythonNoYesYesYes, though the driver is still fairly newThe official Oracle-supported driver for MySQL
MySQL-PythonYesPartialNoYesCan be monkeypatched by eventlet, but only to enable thread pooling
mysqlclientYesPartialYesYesInitial testing shows that this is a promising DBAPI if eventlet requirement can be dropped
OurSQLYesNoYes, but not Pypi hostedNoDevelopment halted fairly early on, and has not seen commits/releases in two years
PyMySQLYesYesYesYes, however see notes below.Actively maintained and popular.
отсюда


Комментарии