关于mysql:实战分享丨MySQL-与Django版本匹配相关经验

32次阅读

共计 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 版本:

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

正文完
 0