带有MemSQL的SQLAlchemy上的语法错误

时间:2015-09-11 12:04:30

标签: python sqlalchemy memsql

当我通过SQLAlchemy(版本1.0.8)连接到MemSQL时,我' 我得到一个错误

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'

当我手动运行上面的命令时,我得到了相同的错误,但是当我删除Charset和Collat​​ion周围的字符(`)时,查询运行正常。这是MemSQL的问题吗?

BTW我使用默认(MySQL)方式连接到MemSQL。

engine = create_engine('mysql://root@127.0.0.1:3306', echo=True)

1 个答案:

答案 0 :(得分:2)

这看起来像是一个合法的错误。这似乎是由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>