【Django入门】——配置Django使用MySQL数据库

一、配置Django使用MySQL

1. 创建MySQL数据库

虽然Django可以通过生成迁移文件、执行迁移命令来生成数据表,但是却不会为用户创建数据库,因此想要配置Django使用MySQL数据,需要用户手动先创建一个MySQL的数据库,所以下面先创建一个名为db4_test2的MySQL数据库:

$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.30-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| jing_dong          |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)

mysql> create database db4_test2 charset=utf8;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db4_test2          |
| jing_dong          |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
7 rows in set (0.00 sec)

mysql> use db4_test2;
Database changed
mysql> show tables;
Empty set (0.00 sec)

2. 创建Django项目

为了演示方便,通过【Django入门】——从零开始创建并启动一个Django项目中的方式创建一个名为test2的Django项目。

3. 配置使用MySQL

为了在创建的Django项目中使用名为db4_test2的MySQL数据库,需要在项目的settings.py文件下进行如下配置:

# settings.py
......

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        'ENGINE': 'django.db.backends.mysql',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'NAME': 'db4_test2',  # 使用的数据库名称,数据库必须手动创建
        'USER': 'root',  # 连接MySQL数据库的用户名
        'PASSWORD': 'XXXXXX',  # 用户对应的密码
        'HOST': 'localhost',  # 指定MySQL数据库所在电脑的IP
        'PORT': 3306,  # MySQL服务的端口号

    }
}

......

4. 配置问题排查

实际上,此时如果你尝试使用命令python manage.py runserver来启动Django服务器,可能会出现下述错误:

$ python manage.py runserver
......
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.

为了解决上述问题,需要:

  • 首先,使用下列命令安装pymysql
$ pip install pymysql
  • 然后,在项目的__init__.py文件写入下列代码:
import pymysql
pymysql.install_as_MySQLdb()

至此,即可在Django项目test2中使用MySQL数据库db4_test2

二、使用MySQL日志文件

1. 修改配置文件

为了能够使用MySQL数据库的日志文件,需要首先使用以下命令打开其配置文件:

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

然后对配置文件做相应修改,具体地是将下列两行的注释取消:

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

2. 重启MySQL服务

完成配置文件的修改之后,需要使用以下命令重启MySQL服务:

sudo service mysql restart

3. 实时查看日志

采用tail命令可以实时显示写入日志文件中的记录:

sudo tail -f /var/log/mysql/mysql.log

猜你喜欢

转载自blog.csdn.net/weixin_37780776/article/details/107475416