在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库。一般较多的会选择MySQL。

下面介绍一下如何在Django中使用MySQL数据库。

一、安装MySQL

不建议在Windows中部署MySQL,建议迁移到Linux上来。

我这里使用的是ubuntu16.04。

安装命令:

sudo apt-get update
sudo apt-get install mysql-server mysql-client

中途,请设置root用户的密码。

安装完毕后,使用命令行工具,输入root的密码,进入mysql:

mysql -u root -p

提示如下:

[feixue@feixue-VirtualBox: ~]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20-0ubuntu0.16.04.1 (Ubuntu) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

可以使用命令,先看看当前数据库系统内有哪些已经默认创建好了的数据库:

mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.04 sec)

假设我们的Django工程名字为'mysite',那么我们就创建一个mysite数据库,当然,名字其实随意,但是一样的更好记忆和区分,不是么?

CREATE DATABASE mysite CHARACTER SET utf8;

强调:一定要将字符编码设置为utf8,很多错误就是没正确设置编码导致的!

创建好mystie数据库后,可以用上面的命令,检查一下,没有问题,就退出mysql。

mysql> CREATE DATABASE mysite CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec) mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysite |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec) mysql> exit;
Bye

二、配置MySQL服务

由于我的环境是局域网,Django项目所在主机为192.168.1.100,而mysql所在linux为虚拟机,IP为192.168.1.121,为了能够从项目主机访问数据库主机,需要对MySQL服务进行配置。

打开配置文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

将下面一行注释掉:

# band-address = localhost
# ..... [mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#bind-address= localhost
skip-name-resolve
character-set-server=utf8 # .....

如果不这么做,将会出现error:1045 deny access,拒绝访问错误。

使用下面的命令,重新启动mysql服务:

sudo service mysql restart

三、安装Python访问MySQL的模块

Django官方已经不建议使用pymysql库了,而是改用mysqlclient,直接pip安装即可。

pip install mysqlclient

四、配置Django的settings.py

在Django的settings.py文件中设置如下:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'mysite', # 数据库名,先前创建的
'USER': 'root', # 用户名,可以自己创建用户
'PASSWORD': '****', # 密码
'HOST': '192.168.1.121', # mysql服务所在的主机ip
'PORT': '3306', # mysql服务端口
}
}

至此,就可以像使用SQLite一样使用MySQL了!

第六章:Django 综合篇 - 3:使用MySQL数据库的更多相关文章

  1. Django web框架-----Django连接本地现有mysql数据库

    第一步:win10下载mysql5.7压缩包配置安装mysql,创建数据库或导入数据库 第二步:win10搭建django2.1.7开发环境,创建项目为mytestsite,创建应用app为quick ...

  2. django整合原有的mysql数据库

    虽然django适合从零开始构建一个项目,但有时候整合原有的数据库也在所难免,下面以django整合我的mysql作说明. mysql数据是我从京东上抓取的数据,数据表名为jd,演示如图 下面将jd整 ...

  3. Django之连接远程mysql数据库

    1.创建Django项目(test) 进入配置文件settings.py 192.168.83.129:所需要远程连接数据库的ip地址 2.进入到远程连接的主机,修改/etc/mysql/mysql. ...

  4. django中怎么使用mysql数据库的事务

    Mysql数据库事务: 在进行后端业务开始操作修改数据库时,可能会涉及到多张表的数据修改,对这些数据的修改应该是一个整体事务,即要么一起成功,要么一起失败. Django中对于数据库的事务,默认每执行 ...

  5. PyCharm创建Django项目并连接mysql数据库

    0. 安装Django pip install django 1. 新建项目 注:我的Pycharm为社区版,创建项目时,File->New Project- 显示为: ​ 注意勾选内容. 如果 ...

  6. Django学习:连接Mysql数据库

    开发环境: Windows 10 Python 3.7.4 Django 2.2.6 Mysql 8.0.17 承接上一节:https://www.cnblogs.com/daydayupup/p/1 ...

  7. Python - Django - 使用 Pycharm 连接 MySQL 数据库

    在 Pycharm 的右上方找到 Database 点击 依次点击,选择 MySQL 数据库 点击 Download 下载驱动文件 下载完成后对数据库的相关信息进行填写 填写完成后点击“Test Co ...

  8. 第六章Django

    web应用程序 server端建立socket,不断地accept,当收到客户端连接信号之后,服务端向客户端发送数据,将html网页打开,read出来,并发送至客户端,这样客户端就可以浏览到网页的内容 ...

  9. 第六章 优化服务器设置--高性能MySQL 施瓦茨--读书笔记

    MySql的默认配置不适用于使用大量资源,因为其通用性很高. 不要期望改变配置文件会带来巨大的性能提升.提升大小取决于工作负载,通常可以通过选择适当的配置参数得到两到三倍的性能提升.在这时候,性能提升 ...

  10. Django学习手册 - 连接mysql数据库

    版本问题: 首先确认django.msql.python版本是统一支持 当前所用的版本信息: Django setting.py 配置 替换之前的DATABASES 配置: DATABASES = { ...

随机推荐

  1. html + css 01: 3d立方体

    html + css实现3d立方体 css代码 /*页面背景色*/ body{ background-color: black; background-repeat:no-repeat; } /*** ...

  2. 图像文本跨模态细粒度语义对齐-置信度校正机制 AAAI2022

    论文介绍:Show Your Faith: Cross-Modal Confidence-Aware Network for Image-Text Matching (跨模态置信度感知的图像文本匹配网 ...

  3. 「Python实用秘技09」更好用的函数运算缓存

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第9期 ...

  4. 推荐系统-协同过滤在Spark中的实现

    作者:vivo 互联网服务器团队-Tang Shutao 现如今推荐无处不在,例如抖音.淘宝.京东App均能见到推荐系统的身影,其背后涉及许多的技术.本文以经典的协同过滤为切入点,重点介绍了被工业界广 ...

  5. [apue] 文件中的空洞

    空洞的概念 linux 上普通文件的大小与占用空间是两个概念,前者表示文件中数据的长度,后者表示数据占用的磁盘空间,通常后者大于前者,因为需要一些额外的空间用来记录文件的某些统计信息或附加信息.以及切 ...

  6. 聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_175 分片上传并不是什么新概念,尤其是大文件传输的处理中经常会被使用,在之前的一篇文章里:python花式读取大文件(10g/50 ...

  7. Odoo14 一些好用的开源的模块

    # odoo14中一些好用的开源的模块 1.intero_reload_form 刷新按钮(页面数据刷新,而不是按F5刷新整个页面) 2.ms_magic_button 弹框下拉选项 3.sessio ...

  8. 技术分享 | ARM下中标麒麟系统ky10使用Xtrabackup-8.0.25

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 一.需求背景 查询Percona官方手册,Xtrabackup 8.0可以备份M ...

  9. postgresql逻辑备份工具pg_dump和pg_resotre学习

    (一)pg_dump备份 pg提供了pg_dump和pg_dumpall命令进行数据库的备份,pg_dumpall是将整个pg集群转储到一个脚本文件中,而pg_dump命令可以选择一个数据库或者部分表 ...

  10. 论文解读(soft-mask GNN)《Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks》

    论文信息 论文标题:Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks论文作者:Mingqi Yang, Ya ...