Django连接MySql数据库之版本不兼容问题的解决办法

Django连接MySql数据库之版本不兼容问题的解决办法

最近在做Django项目时发现 与本地的mysql不匹配,经查资料发现原来Django2.1不再支持MySQL5.5,必须5.6版本以上。我本地装的是Django2.2.3,Mysql 5.5,因此存在版本不兼容问题,就无法正常连接数据库了。这里提供了以下解决办法。
如何查看Django和mysql的版本呢?
查看Django版本:
1 cmd状态下 (注:管理员运行状态)
2import django
3 django.VERSION()
查看MySql版本
1 cmd命令下
2 mysql -u用户名 -P端口 -p密码
3 select version();

解决办法:

一、给Django进行版本降级
(阿~emmm… 正常人当然都不会采取这种方式啦,老纸辛苦安装的新版本干嘛要降级呢 [捂脸笑],下面我们主要来介绍第二个方法)
二、升级MySql版本:
本文是以 mysql 5.5 升级为 mysql 5.7.22为例。
1、这里我们进行手动安装配置MySql,首先卸载本地mysql,下载mysql 5.7.22的解压包,注意路径不要用中文,
我是放在了G:\Program Files 目录下
2、然后在该目录下自建一个配置文件my.ini
Django连接MySql数据库之版本不兼容问题的解决办法_第1张图片
在配置文件中放入以下内容:

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
#设置mysql的安装目录(这里是你解压后的路径
basedir=G:\Program Files\mysql-5.7.22-winx64
#设置mysql数据库的数据的存放目录(要提前创建好G:\dbdata\mysqldata文件夹)
datadir=G:\dbdata\mysqldata
#允许最大连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

注意保存时编码要改为ANSI,如图:
在这里插入图片描述
3、加到环境变量里 path: G:\Program Files\mysql-5.7.22-winx64\bin;

4、在cmd下切到 G:\Program Files\mysql-5.7.22-winx64\bin (这是我的,注意切到你自己的相应目录)然后执行mysqld --initialize-insecure

接着执行mysqld -install

结果发现在这里插入图片描述
what?怎么肥事?我还没安装mysql 服务怎么就存在了?原来是mysql没卸载干净,那就把mysql卸载干净,来我们把它彻底清理干净
管理员身份运行cmd下执行
1sc query mysql
2sc delect mysql
如图操作:
Django连接MySql数据库之版本不兼容问题的解决办法_第2张图片
这就把老版本的mysql清理干净了,然后再去执行mysqld -install服务就成功启动啦。
在这里插入图片描述
接着cd 到 G:\Program Files\mysql-5.7.22-winx64\bin, 执行net start mysql先暂停服务,因为我们要去修改mysql的管理密码
在这里插入图片描述
执行mysqld --console --skip-grant-tables命令
Django连接MySql数据库之版本不兼容问题的解决办法_第3张图片
cmd窗口不要关闭
另开一个dos窗口输入
mysql -uroot -p
然后无需输入密码直接enter键进入;
Django连接MySql数据库之版本不兼容问题的解决办法_第4张图片
接下来先打开mysql 数据库:use mysql;
然后输入
update mysql.user set authentication_string=password('123456') where user='root';
接着刷新权限:flush privileges;
接着退出:quit;
Django连接MySql数据库之版本不兼容问题的解决办法_第5张图片
再输入net start mysql重启MySQL服务
在这里插入图片描述
接下来就可以使用新密码登录了。
mysql -u root -p
用户名和密码:
root
123456
Django连接MySql数据库之版本不兼容问题的解决办法_第6张图片
ok! 撒花~

天道酬勤,但问耕耘。

你可能感兴趣的:(Django连接MySql数据库之版本不兼容问题的解决办法)