一、mysql服務器
系統版本:CentOS6.8
IP :10.0.0.51
版本
1、授權root遠程登錄
grant all on *.* to 'root'@'%' identifide by '123456'; |
2、創建一個名為"cmdb"的數據庫
create database cmdb; |
3、編輯 /etc/my.cnf 添加如下
binlog_format=ROW |
4、如果不添加上述語句,Djang創建數據的時候會報如下錯誤,原因是Django的創建的數據庫事務基於行的日志記錄
django.db.utils.InternalError: (1665, 'Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEM ENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transactio n isolation level is READ COMMITTED or READ UNCOMMITTED.') |
5、重啟mysql服務
/etc/init.d/mysqld restart |
二、Django 連接mysql數據庫
1、先創建一個Django項目
2、打開pycharm的Terminal終端運行" python manage.py startapp app01 "命令創建一個名為"app01"的app應用
3、在untitled2項目的settings.py的INSTALLED_APPS列表添加app01
4、在untitled2項目的settings.py的DATABASES列表添加連接mysql數據庫的參數
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'cmdb', 'USER': 'root', 'PASSWORD': '123456', 'HOST': '10.0.0.51', 'PORT': '3306', } } |
5、在app01文件夾的models.py中創建一個Article表
from django.db import models # Create your models here. class Article(models.Model): title = models.CharField(max_length=60,default='title') content = models.TextField(null=True) |
6、由於Python3按裝Django的Mysqldb不支持連接mysql,所有需要安裝pymysql模塊
python -m pip install pymsql |
注意:由於我已經安裝好pymysql,所以提示如下
7、在untitled2目錄下的__init__.py添加如下使pymysql代替MySQldb連接mysql數據庫
import pymysql pymysql.install_as_MySQLdb() |
8、打開pycharm的Terminal終端運行如下命令
python manage.py makemigrations |
python manage.py migrate |
9、在mysql服務器上常看是否創建表