摘要:对于MySQL 与Django版本匹配相干常识的教训分享。

run:

(env) E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro>python manage.py migrate

报错代码提醒如下:

raise errorclass(errno, errval)django.db.utils.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 '(6) NOT NULL)' at line 1")During handling of the above exception, another exception occurred:

依据提醒剖析报错起因:

Django2.1不再反对MySQL5.5,必须mysql5.6版本以上

查mysql版本和Django版本:

mysql版本:

Django版本:

依据起因剖析得出解决思路:

二选一

(1)Django降级到2.0

(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro> pip install Django==2.0.0 -i https://pypi.douban.com/simple

>>> import django>>> django.VERSION

(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro> python .\manage.py makemigrationsNo changes detected(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro>(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro> python .\manage.py migrate

胜利连贯数据库。

(2)MySQL降级

1.查看MySQL的版本

mysql --versionmysql  Version 14.14 Distrib 5.5.28, for Linux (x86_64) using reeadline 5.1从下面能够看出,MySQL版本为5.5.28

2.查看MySQL的安装包

yum list | grep mysql留神:如果没有看到想要降级的版本,请更新yum装置库,具体操作如下:1) wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm2) rpm -ivh mysql-community-release-el6-5.noarch.rpm3) 从新查看即可,yum list | grep mysql

3.查看以后曾经装置的MySQL装置相干信息

yum list | grep ^mysql留神:这里的^代表以mysql结尾的项-----------yum info mysql-server据说,下面的命令执行结束后能够看到可降级的版本,然而并没看到。-----------yum check-update mysql-server能够查看可用的安装包

4.降级MySQL及其组件

yum update mysql-server执行完结,会显示complete之类的关键字。

5.查看是否更新胜利

mysql --version当然,执行完这一步并不代表曾经能够用MySQL了。在这里,可能碰到了一个谬误。

问题1:

启动服务的时候,提醒找不到mysql.sock之类的问题。

解决方案:

1.查看谬误日志(前提:my.cnf外面有配置日志性能log-error = 门路)cat /var/log/mysql_error.log2.发现skip-locking5.6不反对,曾经过期。改为skip-extenal-locking(skip-locking可参考链接:) 3.保留退出,重启mysqld服务即可

问题2:

启动服务的时候,谬误日志显示Unknown/unsupported storage engine: InnoDB

解决方案:

执行删除命令:rm -rf /var/lib/mysql/ib*删除:ibdata1、ib_logfile0、ib_logfile1文件重启服务即可,service mysqld restart

当然,你可能会想,如果更新的版本存在5.5、5.6甚至更高,但我只是想更新到指定版本呢?那应该怎么做?

其实很简略,只有在上诉操作中更新前,改变repo配置文件即可。

配置文件门路:/etc/yum.repos.d批改配置文件:mysql-community.repo和mysql-community-source.repo批改内容:将所要更新的版本的enabled=1,其余版本的enabled=0即可,如下图所示,只更新到mysql 5.6版本:

点击关注,第一工夫理解华为云陈腐技术~