共计 2083 个字符,预计需要花费 6 分钟才能阅读完成。
摘要: 对于 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 版本:
点击关注,第一工夫理解华为云陈腐技术~
正文完