实战分享丨MySQL 与Django版本匹配相关经验
2020-08-17 14:01
1206 查看
摘要:关于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:
启动服务的时候,错误日志显示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版本:
相关文章推荐
- 【网络故障实战经验】分享^ ....网管应用
- [资料分享] 关于web-iou 版本更新(包括相关问题说明)
- [文摘20090106]大量实战经验的真实网络创业经历分享(转)
- MySQL 性能优化的最佳20多条经验分享(一)(转)
- 国内外三个不同领域巨头分享的Redis实战经验及使用场景(一)
- MongoDB实战经验分享
- 数据库分享一: MySQL的Innodb缓存相关优化
- Django博客web开发经验分享
- “喜茶Go”微信小程序新零售商业实战案例经验分享-概述
- 分享下mysql各个主要版本之间的差异
- 分布式事务分享一点相关经验
- 项目实战经验分享:户外玻璃幕墙LED透明屏工程方案设计
- 干货分享:vue2.0做移动端开发用到的相关插件和经验总结(2)
- 】openssl移植Android使用及其相关经验分享
- 在rhel5版本下安装mysql+apache+php实战攻略
- mysql大数据查询优化经验分享(推荐)
- Django2.0版本 path与Django1.x版本url正则匹配问题
- 最新《道森学院MYSQL优化班+实战班+书籍全套分享》
- 国内外三个不同领域巨头分享的Redis实战经验及使用场景
- 实践分享 | 中小型银行实战攻防演练经验——利用xss漏洞攻击