Mysql部署步骤
1. 下载mysql
查找对应版本
下面提供了两种安装方式,一种msi,一种zip压缩文件解压安装
mysql下载地址:https://dev.mysql.com/downloads/mysql/
下载安装文件
点击下载即可
2.新建my.ini文件并进行配置,在mysql文件夹根目录新建data目录
新建data目录:mysql数据库的数据的存放目录
将下载的压缩包,解压后放到电脑合适位置,并在里面手动新建一个my.ini文件,将下面内容复制进去并做相应修改即可
mysql根目录文件结构
my.ini文件配置
[mysqld]
# 设置mysql的安装目录
basedir=C:/mysql-8.0.11-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:/mysql-8.0.11-winx64/data
# 设置默认使用的端口
port=3306
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人试图攻击数据库
max_connect_errors=10
# 服务端使用的字符集
character-set-server=utf8mb4
# 数据库字符集对应一些排序等规则使用的字符集
collation-server=utf8mb4_general_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件作为认证加密方式
# MySQL8.0默认认证加密方式为caching_sha2_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
port=3306
3.对mysql进行初始化
使用mysqld.exe进行初始化
打开上面文件目录,并进入该目录的
CMD命令窗口,使用mysqld.exe对mysql进行初始化
mysql初始化
mysql初始化有两种方式:
-
1.
mysql --initialize:直接使用改名了初始化后会随机生成一个密码,需要复制并记住改密码,以便后面对该随机生成的复杂密码进行修改,修改成我们自己能记住的密码 -
2.
mysqld --initialize-insecure --user=mysql--console:使用该命令进行初始化,会将密码设置为空,后面再修改即可
注意:
一台电脑安装多个版本mysql,安装名称服务区别
1、
mysqld3 --initialize-insecure --user=mysql3--console:使用该命令进行初始化,会将密码设置为空,后面再修改即可2、安装mysql服务:
mysqld3 --install mysql3**(要以管理员身份运行cmd才行)
安装服务
3、初始化密码(mysql3服务必须先启动:
net start mysql3)
初始化登录密码
4.安装以及启动mysql服务,并进入mysql
使用mysql.exe进入mysql
- 1.安装mysql服务:
mysqld --install(要以管理员身份运行cmd才行)- 2.启动mysql服务:
net start mysql
安装并启动mysql服务
- 3.
root进入mysql数据库:mysql -u root -p此处我们初始化密码为空,所以直接回车即可;如果初始化了随机密码,此处需要将随机密码复制到此处
进入mysql数据库
- 4.修改
root用户密码使用mysql其他连接工具也可以修改密码
修改
root用户密码为test123456:alter user 'root'@'localhost' identified by 'test123456';
修改root用户密码为test123456
退出并重新使用新密码登录:
退出并使用修改后密码登录
- 5.将mysql添加系统变量Path中
复制该目录
添加至Path系统变量
5.在Django的settings.py配置mysql数据库连接
具体数据库连接可以访问官方文档:https://docs.djangoproject.com/en/2.0/ref/settings/#databases
mysql数据库
但是在实际应用中,root权限为超级用户,直接将超级用户放出去有风险,所以,处于安全考虑,我们设置一个非root权限用户,只拥有我们该项目所使用的数据库权限即可
- 1.创建一个
ysh的新用户创建
ysh用户并将密码设置为ysh123456:create user 'ysh'@'localhost' identified by 'ysh123456';
创建用户
- 2.为ysh的新用户赋予操作某个库的权限
给ysh用户赋予操作mysite_db数据库操作的所有权限
grant all privileges on mysite_db.* to 'ysh'@'localhost';
为ysh用户赋予操作mysite_db库的权限
添加完成权限后,还需要刷新权限并退出使用新用户登录
flush privileges;
刷新权限并退出使用新用户登录
获得了mysite_db数据库的操作权限
接着将新用户和密码在
Django的settings.py配置即可
6.安装django的mysql数据库驱动连接
这块有两种方式,分别使用不同的mysql数据库驱动包:
1.使用pip install pymysql安装pymysql包,并在settings.py同级目录下的__init__.py文件添加如下内容即可实现django与mysql数据库的连接
import pymysql
pymysql.install_as_MySQLdb()
pymysql使用
2.使用pip install mysqlclient安装mysqlclient包,安装成功就ok,如果安装不成功,就通过下面网址,根据python版本去下载驱动包,手动进行安装
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
根据自己电脑对应python版本以及电脑操作系统
pip install 包名称
注意:使用
pip install 包名称的时候,包存放路径一定要找对
下面的内容是原本使用sqlite3数据库,后面再迁移到mysql数据库操作,如果项目开始就使用mysql数据库,请忽略
3.安装完成后同步数据到mysql数据库
python manage.py makemigrations因为迁移的表都存在,所以直接同步到数据库即可
再启动服务器,打开网站:
python manage.py runserver
发现报错,缺少我们之前使用的缓存表
缺少之前使用缓存表
我们再创建一次缓存表即可:使用下面命令
python manage.py createcachetable
创建缓存表
4.迁移数据
最初使用的是SQLite数据库,所以我们文章博客等信息都存储在该数据库中,我们改为mysql数据库后,启动服务整个项目没有数据,所以我们将之前写好的文章博客迁移到mysql数据库中,我们使用django的导出导入命令
迁移数据从SQLite到Mysql
-
1.首先换回之前的
sqlite3数据库,将存储在里面的文章博客等数据导出
换回sqlite3数据库导出之前数据
使用python manage.py dumpdata > data.json命令导出数据到data.json
导出sqlite3数据
-
2.换回
mysql数据库,并将导出的data.json数据进行导入
使用python manage.py loaddata data.json命令导入数据
进行数据导入mysql
但是执行导入命令,报错,是因为有重复名称
报错信息
删除重复表
最后删除上面报错没有被删除的表
删除后,如果还有重复报错,可以和上面类似,哪个表有重复删除即可
经过上面操作,我们已经ok了,可以正常启动服务并登陆网站
- 3.时区问题
时区问题导致文章归档没有数据,我们可以将时区设置False进行关闭,也可以进行如下操作
步骤1:django官网查询
步骤2:mysql官网获取下载地址
步骤3:mysql官网获取下载链接
步骤4:根据mysql版本下载
步骤5:下载完成导入方法
步骤6:找到下载文件并执行导入命令
最终完成效果












网友评论