Синтаксическая ошибка в SQLAlchemy с MemSQL

Когда я подключаюсь к MemSQL через SQLAlchemy (версия 1.0.8), я получаю сообщение об ошибке

sqlalchemy.exc.ProgrammingError: (_mysql_exceptions.ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`Charset` = 'utf8' and `Collation` = 'utf8_bin'' at line 1") [SQL: "show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'"]

echo=True показывает, что вначале SQLAlchemy выполняет следующую команду

show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'

Когда я вручную запускаю указанную выше команду, я получаю ту же ошибку, но когда я удаляю символы ( ` ) вокруг набора символов и сопоставления, запрос выполняется нормально. Это проблема MemSQL?

Кстати, я использую способ по умолчанию (MySQL) для подключения к MemSQL.

engine = create_engine('mysql://[email protected]:3306', echo=True)

person MKo    schedule 11.09.2015    source источник


Ответы (1)


Это похоже на легальную ошибку. Похоже, это было вызвано недавним изменением/обходным решением, представленным в SQLAlchemy в коде с использованием библиотеки MySQL-Python. Мы постараемся исправить это на нашей стороне.

При этом библиотека OurSQL работает нормально:

  >>> import sqlalchemy
  >>> sqlalchemy.__version__
  '1.0.8'
  >>> sqlalchemy.create_engine("mysql+oursql://127.0.0.1").connect()
  <sqlalchemy.engine.base.Connection object at 0x7f382ff19910>
person Carlos Bueno    schedule 11.09.2015