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 makemigrations
No changes detected
(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro>
(env) PS E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro> python .\manage.py migrate

成功连接数据库。

(2)MySQL升级

1.查看MySQL的版本

mysql --version
mysql  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.rpm
2) rpm -ivh mysql-community-release-el6-5.noarch.rpm
3) 重新查看即可,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.log
2.发现skip-locking5.6不支持,已经过时。改为skip-extenal-locking
(skip-locking可参考链接:) 
3.保存退出,重启mysqld服务即可

问题2:

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java