python-django部署(二):MySQL


MySQL是一款跨平台开源的关系型数据库
在这里插入图片描述
安装MySQL
在这里插入图片描述

安装MySQL

安装社区版
在这里插入图片描述
这里最好选用5.7或8.0的最新版本
在这里插入图片描述
进行MySQL的下载,使用本地一直无法连接,用了迅雷6.9M/s。。。。
在这里插入图片描述
将文件解压
在这里插入图片描述
将其解压完后,剪切到c盘,放置根目录即可
在这里插入图片描述
在文件夹新建配置文件my.ini,先新建txt然后修改。
在这里插入图片描述
具体在github36节的课里

https://github.com/HaddyYang/django2.0-course

将其clone到本地
在这里插入图片描述
在里面的my.ini中复制,注意自己下载的版本,适当修改文件名

在这里插入图片描述
新建data文件
在这里插入图片描述

初始化

初始化密码比较复杂,可以考虑没有密码的方式

mysqld --initialize-insecure --user=mysql --console

在这里插入图片描述
发现如上问题,缺少动态链接库
可以去下载一下微软常用运行库合集然后安装
下载地址:https://pan.baidu.com/s/1gBgg97Ytb8siZS860PELMg (密码:8yin)
在这里插入图片描述
运行成功
安装mysql服务

mysqld --install

在这里插入图片描述
启动服务

net start mysql

在这里插入图片描述
进入数据库,指定root用户,就是初始化的

mysql -u root -p

输入密码回车就可进入
在这里插入图片描述
这时可以修改密码

alter user 'root'@'localhost' identified by 'test123456';

已经修改后
在这里插入图片描述

exit

退出mysql
在这里插入图片描述
重新登入需要输入密码
在这里插入图片描述
创建数据集,对应设置 默认字符集规则校对规则

create database mysite_db default charset=utf8mb4 default collate utf8mb4_unicode_ci;

在这里插入图片描述
可以查看数据库,可以发现数据库已创建

show databases;

在这里插入图片描述
在setting文件中最早是root用户,如果用这个文件权限太高,如果获取会发生安全问题,如删除整个数据库
在这里插入图片描述

创建用户

创建用户

create user 'ytc'@'localhost' identified by 'ytc123456';

在这里插入图片描述
创建后无法访问任何数据库,没有权限,所以要让他访问mysite_db,要给她权限

grant all privileges on mysite_db.* to 'ytc'@'localhost' ;

在这里插入图片描述
刷新权限,有了这个数据库全部权限

flush privileges;

在这里插入图片描述
这时可以测试一下这个用户的权限
先关闭数据库
在这里插入图片描述
再回去设置配置
在这里插入图片描述

测试mysql能否使用

回到通过github下载的文件的mysite中,在这个文件家中
在这里插入图片描述
使用命令行启动虚拟环境,如果已安装Django可以不用,在自己电脑尝试找不到路径,也许本来也没用虚拟环境,故使用自己已经安装django的环境

..\Scripts\activate

我有一个虚拟环境TensorFlow已安装所以激活该环境
应用迁移文件初始化数据库

python manage.py migrate

在这里插入图片描述
发现只装了django还无法解决问题
这时需要安装模块

pip install django-ckeditor

再次输入manage文件成功
在这里插入图片描述
这时问我是否安装mysql的客户端
我们要安装一下

pip install mysqlclient

在这里插入图片描述

安装不了mysqlclient

如果安装不了的话可以下载whl包

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

直接编译好的二进制文件
在这里插入图片描述
直接下载cp代表python 36表示python3.6 然后找准32位或者64位即可,把这个文件包放入cmd命令行所在的位置,然后运行即可成功
在这里插入图片描述

重新使用manage.py

python manage.py migrate

可以发现应用成功
在这里插入图片描述
此时再打开本地服务

python manage.py runserver

打开本地网址
发生如下错误
在这里插入图片描述
按ctrl+c退出runserver

python manage.py createcachetable

再执行本地服务

python manage.py runserver

成功
在这里插入图片描述

mysql路径加入环境变量

在这里插入图片描述

迁移数据

在这里插入图片描述
先把setting改为之前的sqlite,改注释下面的

在这里插入图片描述

python manage.py dumpdata>data.json

再把配置换成mysql
在这里插入图片描述

python manage.py loaddata data.json

会因为重复报错
在这里插入图片描述

解决Duplicate办法

打开mysql界面,使用mysite_db数据库

use mysite_db;

在这里插入图片描述
看有那些表
在这里插入图片描述
此时选取django_content_type表

select * from django_content_type;

在这里插入图片描述
在这里插入图片描述
可以发现之前pk=7,7这条重复了,我们把整个表都删了

delete from django_content_type;

在这里插入图片描述
和外键有关联,则把它也删了

delete from auth_permission;

在这里插入图片描述
再把之前的也删了
在这里插入图片描述
此时再导入数据库

python manage.py loaddata data.json

在这里插入图片描述
此时再开启服务器

python manage.py runserver

博客中的文章出现了
在这里插入图片描述

mysql时区问题

发现日期归档都为0了,mysql没启用时区有关系
在这里插入图片描述
首先访问django的帮助网页

https://docs.djangoproject.com/en/3.0/ref/settings/

用网页自带搜索工具搜索timezone,可以直接把时区关掉解决这不是太好
在这里插入图片描述
搜索mysql,在这里要把语言设置为英语,一开始改了中文就搜不到了
在这里插入图片描述
按ctrl+f查找timezone
在这里插入图片描述
翻译中文
在这里插入图片描述
点卡第二个跳到mysql的官网,windows需要下载时区表再安装
linux和mac自带
如果你的电脑里没有时区表就打开蓝色网页下载
在这里插入图片描述
下面网站中找到如下,如果没有下载地址
在这里插入图片描述
显示要下载的版本,高于5.7下载下面的
在这里插入图片描述
解压后有sql文件
在这里插入图片描述
之前的文档说让你再导入sql文件即可
在这里插入图片描述
在sql文件的文件夹用cmd

mysql -u root -p  mysql <timezone_posix.sql

在这里插入图片描述
刷新后问题解决
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39289876/article/details/106887477