以下內(nèi)容都是基于python3.x 版本!
mysql的安裝
官網(wǎng)下載: https://downloads.mysql.com/archives/community/
一定要下載社區(qū)版读恃。鹉胖。
Windows下 5.x版本的mysql安裝方式(免安裝包的安裝)
- 解壓
解壓下載后的文件,拷貝到任意目錄望门,盡量不要帶有中文
例如: D:\SDK\mysql-5.7.31-winx64 - 添加配置文件
進入sql文件夾的根目錄,添加文件锰霜,名為 mysql.ini筹误,內(nèi)容如下
[mysqld]
# 端口號
port=3306
# sql的路徑
basedir=D:\\SDK\\mysql-5.7.31-winx64
# 數(shù)據(jù)庫數(shù)據(jù)的存儲路徑,可以隨意更改
datadir=D:\\datas\\sql_datas\\mysql5.7.31_datas
- 執(zhí)行數(shù)據(jù)庫初始化
執(zhí)行如下命令癣缅, cmd厨剪,并使用管理員運行。
注意:是mysqld.exe 不是 mysql.exe
"D:\SDK\mysql-5.7.31-winx64\bin\mysqld.exe" --initialize-insecure
注意:報 msvcr120.dll 丟失的話友存,
- 請到Microsoft Visual C ++可再發(fā)行組件包下載網(wǎng)站下載 vc_redist.x64.exe或vc_redist.x84.exe
- 或者百度下載 微軟組合包
- 執(zhí)行服務祷膳,把mysql添加到系統(tǒng)服務
mysql57 是服務名,可以隨意命名屡立。 注意:該名稱就是以后啟動或停止的服務名
"D:\SDK\mysql-5.7.31-winx64\bin\mysqld.exe" --install mysql57
- 啟動服務 和 停止服務
net start mysql57
net stop mysql57
為了方便直晨,一般會將mysql 添加到環(huán)境變量
將bin目錄的完整路徑添加到環(huán)境變量
# 測試連接
mysql -h 127.0.0.1 -p 3306 -u root -p
如果是本地的話,可直接
mysql -u root -p
記得啟動服務侠驯。
其他
- 設(shè)置密碼
如果沒有設(shè)置密碼抡秆。可以在登陸mysql成功后吟策,
set password = password("密碼");
- 查看已有文件夾(數(shù)據(jù)庫)
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
# 添加下面的內(nèi)容
skip-grant-tables=1
4.保存,重新啟動 mysql 服務 拖叙, 以無密碼的方式登錄 mysql氓润;
# 先執(zhí)行
use mysql;
#再執(zhí)行
update user set authentication_string = password("新密碼"),password_last_changed=now() where user='root';
- 退出mysql薯鳍,停止服務咖气。
- 再次修改 mysql.ini 文件, 刪除下面的內(nèi)容
# 刪除下面的內(nèi)容
skip-grant-tables=1
重新啟動mysql服務挖滤, 正常登錄 ok崩溪。。斩松。
-------------------------------------fenge yixia --------------------------------------------------
python 使用mysql數(shù)據(jù)庫的分兩個版本
- MySQLdb : 2.x 的python版本伶唯;
- PyMySQL :3.x 的python 版本;
Python-MySQL資格最老惧盹,核心由C語言打造乳幸,接口精煉,性能最棒钧椰,缺點是環(huán)境依賴較多粹断,安裝復雜,近兩年已停止更新嫡霞,只支持Python2姿染,不支持Python3。
PyMySQL為替代Python-MySQL而生秒际,純python打造,接口與Python-MySQL兼容狡汉,安裝方便娄徊,支持Python3。
mysql的配置
models是用來跟數(shù)據(jù)庫綁定的對象
下面以mysql為例說明:
- 配置參數(shù)
把庫 和 數(shù)據(jù)庫連接的相關(guān)參數(shù)(賬戶盾戴,密碼寄锐,端口等)配置到 setting.py 里
連接的優(yōu)先級:
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 的優(yōu)先級會高于用 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 使用說明
- 創(chuàng)建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)
- 首先畏梆,要創(chuàng)建數(shù)據(jù)庫
因為django無法創(chuàng)建庫您宪,所以必須手動自己創(chuàng)建庫(以mysql)奈懒; 注意:編碼是 utf8 不是 utf-8
create database 數(shù)據(jù)庫名稱 default charset=utf8;
- 根據(jù)model生成庫表
注意:TestModel 不寫的話,會生成全部model 對應的表(包括系統(tǒng)自帶的)宪巨。指定的話磷杏,只生成指定的model的表;
$ python manage.py makemigrations TestModel # 讓 Django 知道我們在我們的模型有一些變更
$ python manage.py migrate TestModel # 創(chuàng)建表結(jié)構(gòu)
控制臺看到幾行 "Creating table…" 的字樣捏卓,你的數(shù)據(jù)表就創(chuàng)建好了极祸。
注意:Django 會自動添加一個 id 作為主鍵。
其他注意:
安裝pymysql
pip install pymysql
安裝 mysqlclient
pip install mysqlclient
使用model創(chuàng)建表的時候怠晴,要做一下配置遥金。在init.py下添加如下內(nèi)容( setting.py 同級目錄下)
import pymysql
pymysql.install_as_MySQLdb()