首页 > 解决方案 > 错误 1064,“您的 SQL 语法有错误” Python Django

问题描述

我在我的 Django 网站发布设置中收到多个 SQL 错误。我相信这是一个版本问题,但无法指出。该站点是使用 mysqlclient 创建的,但我已将其移至 mysqlconnector。

完整示例错误消息是:(1064,“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的 'OPTION max_matches = 1000' 附近使用的正确语法”)

(1064,“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的“组、面额、位置、隶属关系、released_by、隶属关系、文件类型”附近使用的正确语法”)

MySQL 版本:8.0(仅用于 sphinx) 使用 Postgres 的数据库 使用 mysqlconnector init .py(主要用于站点)导入 pymysql,使用 install_as_MySQLdb()

我使用 python manage.py inspectdb>models.py 自动创建了 models.py,但不确定这是否有任何帮助(该站点提供的模型文件仅由应用程序控制)。

Django 是 2.0.13,python 是 3.9,运行 6

标签: mysqldjangodjango-modelsmysql-connector-python

解决方案


OPTION max_matches = 1000据我所知,这是不被 MySQL 或 PostgreSQL 支持的 Sphinx Search 语法。Sphinx Search 支持 MySQL 协议,因此您可以使用 MySQL 客户端连接到它。但是 Sphinx Search 支持一些 MySQL 不支持的查询语法。如果您尝试对实际的 MySQL 实例运行 Sphinx Search 查询,MySQL 将无法识别它。我认为这就是您的第一个错误中发生的情况。

第二个错误只是您group在 SQL 查询中使用保留关键字作为列名。见https://dev.mysql.com/doc/refman/8.0/en/keywords.html


推荐阅读