小编McL*_*vin的帖子

Django迁移错误_mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误

TL; DR:python版本冲突,我认为我下载并编译的python(3.6)无法使用此包(libmysqlclient-dev)进行向mysql的迁移。只有系统的默认python(3.4)可以。

我的ubuntu服务器带有python 3.4,我所有的django工作和其他工作都依赖于3.6。我了解到升级系统python是一个坏主意,因此我编译了python 3.6(带有altinstall)。

当我运行python3.6 manage.py migrate它给我这个mysql错误:

_mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请检查与MySQL服务器版本相对应的手册,以在第1行的'(6)NOT NULL)'附近使用正确的语法”)

我尝试虚拟环境和正常的Python 3.6,既给了同样的错误,而我确信,libmysqlclient-devmysqlclient安装。

就像这个答案所暗示的那样,问题出在哪里,libmysqlclient-dev因为它apt-get不是通过安装的,pip所以我猜它只与默认的python(系统随附的3.4)兼容,或者我编译的python 3.6不被允许使用,因为当我制作一个带有python3.4(系统默认值)的django虚拟项目,python3.6 manage.py migrate并以相同的用户尝试在相同的mysql数据库上运行,成功了!

再次:我的问题是手动编译的python 3.6无法使用,只有3.4可以libmysqlclient-dev安装apt-get

参考:迁移时的Django MySQL错误

更新 我想出了一个解决方法,但是效率不高。我将Django降级为2.0.9,并且(python manage.py migrate)正常运行。但是使用其他软件包可能会再次出现此问题。

python django virtualenv mysql-python python-3.x

1
推荐指数
1
解决办法
1279
查看次数

标签 统计

django ×1

mysql-python ×1

python ×1

python-3.x ×1

virtualenv ×1