以下内容都是基于python3.x 版本!
mysql的安装
官网下载: https://downloads.mysql.com/archives/community/
一定要下载社区版。。
Windows下 5.x版本的mysql安装方式(免安装包的安装)
- 解压
解压下载后的文件,拷贝到任意目录,尽量不要带有中文
例如: D:\SDK\mysql-5.7.31-winx64 - 添加配置文件
进入sql文件夹的根目录,添加文件,名为 mysql.ini,内容如下
[mysqld]
# 端口号
port=3306
# sql的路径
basedir=D:\\SDK\\mysql-5.7.31-winx64
# 数据库数据的存储路径,可以随意更改
datadir=D:\\datas\\sql_datas\\mysql5.7.31_datas
- 执行数据库初始化
执行如下命令, cmd,并使用管理员运行。
注意:是mysqld.exe 不是 mysql.exe
"D:\SDK\mysql-5.7.31-winx64\bin\mysqld.exe" --initialize-insecure
注意:报 msvcr120.dll 丢失的话,
- 请到Microsoft Visual C ++可再发行组件包下载网站下载 vc_redist.x64.exe或vc_redist.x84.exe
- 或者百度下载 微软组合包
- 执行服务,把mysql添加到系统服务
mysql57 是服务名,可以随意命名。 注意:该名称就是以后启动或停止的服务名
"D:\SDK\mysql-5.7.31-winx64\bin\mysqld.exe" --install mysql57
- 启动服务 和 停止服务
net start mysql57
net stop mysql57
为了方便,一般会将mysql 添加到环境变量
将bin目录的完整路径添加到环境变量
# 测试连接
mysql -h 127.0.0.1 -p 3306 -u root -p
如果是本地的话,可直接
mysql -u root -p
记得启动服务。
其他
- 设置密码
如果没有设置密码。可以在登陆mysql成功后,
set password = password("密码");
- 查看已有文件夹(数据库)
show databases;
- 修改密码(忘记密码)
- 首先要停止 mysql 服务;
- 修改Mysql配置,重新启动mysql(无账号模式),重新 set 密码;
- 找到 配置 文件(上面添加的mysql.ini 文件),添加下面配置
[mysqld]
port=3306
basedir=D:\\SDK\\mysql-5.7.31-winx64
datadir=D:\\datas\\sql_datas\\mysql5.7.31_datas
# 添加下面的内容
skip-grant-tables=1
4.保存,重新启动 mysql 服务 , 以无密码的方式登录 mysql;
# 先执行
use mysql;
#再执行
update user set authentication_string = password("新密码"),password_last_changed=now() where user='root';
- 退出mysql,停止服务。
- 再次修改 mysql.ini 文件, 删除下面的内容
# 删除下面的内容
skip-grant-tables=1
重新启动mysql服务, 正常登录 ok。。。
-------------------------------------fenge yixia --------------------------------------------------
python 使用mysql数据库的分两个版本
- MySQLdb : 2.x 的python版本;
- PyMySQL :3.x 的python 版本;
Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持Python3。
PyMySQL为替代Python-MySQL而生,纯python打造,接口与Python-MySQL兼容,安装方便,支持Python3。
mysql的配置
models是用来跟数据库绑定的对象
下面以mysql为例说明:
- 配置参数
把库 和 数据库连接的相关参数(账户,密码,端口等)配置到 setting.py 里
连接的优先级:
1、OPTIONS ( 最高)
2、NAME、USER、PASSWORD、HOST、PORT
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dj_demo02',
'USER': 'root',
'PASSWORD': '',
'HOST': '',
'PORT': '3306',
# 使用options 的优先级会高于用 NAME、USER 等字段
'OPTIONS': {
'read_default_file': BASE_DIR / 'my.cnf',
},
}
}
my.cnf 写法
# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8
model 使用说明
- 创建model
所有model类都需要继承自 models.Model
class UserInfo(models.Model):
name = models.CharField(max_length=32)
size = models.IntegerField()
# 带默认值
age = models.IntegerField(default=1)
# 允许为空
data = models.IntegerField(null=True, blank=True)
- 首先,要创建数据库
因为django无法创建库,所以必须手动自己创建库(以mysql); 注意:编码是 utf8 不是 utf-8
create database 数据库名称 default charset=utf8;
- 根据model生成库表
注意:TestModel 不写的话,会生成全部model 对应的表(包括系统自带的)。指定的话,只生成指定的model的表;
$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel # 创建表结构
控制台看到几行 "Creating table…" 的字样,你的数据表就创建好了。
注意:Django 会自动添加一个 id 作为主键。
其他注意:
安装pymysql
pip install pymysql
安装 mysqlclient
pip install mysqlclient
使用model创建表的时候,要做一下配置。在init.py下添加如下内容( setting.py 同级目录下)
import pymysql
pymysql.install_as_MySQLdb()
网友评论