Django配置MySQL数据库

本文介绍如何在Django项目中配置MySQL数据库,并完成数据库结构迁移。包括创建数据库、设置数据库参数、安装pymysql及执行迁移命令等内容。

0.在MySQL数据库创建要使用的数据库

CREATE DATABASE databasename;

 

1.在settings.py文件中更改数据库配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',   # 数据库引擎
        'NAME': 'mydb01',           # 你要存储数据的库名,事先要创建之
        'USER': 'root',             # 数据库用户名
        'PASSWORD': '123456',       # 密码
        'HOST': 'localhost',        # 主机
        'PORT': '3306',             # 数据库使用的端口
    }
}

2.数据库结构迁移

终端依次执行以下命令:

python manage.py makemigrations


python manage.py migrate

注:python3以上的版本安装的是pymysql,步骤如下:

           1.安装pymysql:pip install pymysql。

           2.在项目文件夹下的_init_.py添加如下代码即可。

           

import pymysql
pymysql.install_as_MySQLdb()

 

Django配置 MySQL 数据库,需要完成以下几个步骤: 1. 安装必要的依赖包; 2. 配置 `settings.py` 文件中的数据库连接信息; 3. 确保 MySQL 服务已启动并创建好数据库; 4. 测试数据库连接(通过迁移等操作)。 --- ### ✅ 步骤一:安装 MySQL 驱动 Django 使用 `mysqlclient` 或 `PyMySQL` 来连接 MySQL。推荐使用 **mysqlclient**(性能更好),它是 Django 官方推荐的 MySQL 适配器。 #### 方法 1:使用 `mysqlclient`(推荐) ```bash pip install mysqlclient ``` > 注意: > - 在 Windows 上可能遇到编译问题,可使用预编译版本(如通过 [Christoph Gohlke 的网站](https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient) 下载 `.whl` 文件安装)。 > - Linux(Ubuntu/Debian)用户可能需要先安装系统依赖: > > ```bash > sudo apt-get install python3-dev default-libmysqlclient-dev build-essential > ``` #### 方法 2:使用 `PyMySQL`(兼容性好,适合开发环境) 如果你使用 PyMySQL,需在项目入口文件中(通常是 `__init__.py`)进行注册。 安装: ```bash pip install PyMySQL ``` 然后在你的 Django 项目根目录下的 `__init__.py`(与 `settings.py` 同级)中添加: ```python import pymysql pymysql.install_as_MySQLdb() ``` --- ### ✅ 步骤二:修改 `settings.py` 配置数据库 打开 `settings.py` 文件,找到 `DATABASES` 配置项,修改为如下内容: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_database_name', # 数据库名 'USER': 'your_mysql_username', # 用户名,如 root 'PASSWORD': 'your_password', # 密码 'HOST': 'localhost', # 主机,本地用 localhost 或 127.0.0.1 'PORT': '3306', # 端口,默认 3306 'OPTIONS': { 'charset': 'utf8mb4', # 推荐使用 utf8mb4 支持 emoji }, 'TEST': { 'CHARSET': 'utf8mb4', 'COLLATION': 'utf8mb4_unicode_ci', }, } } ``` 📌 替换以下字段为你自己的 MySQL 配置: - `'NAME'`: 数据库名称(需提前在 MySQL 中创建) - `'USER'`: MySQL 用户名 - `'PASSWORD'`: 对应用户的密码 - `'HOST'`: 如果是远程数据库,填写 IP 地址 - `'PORT'`: 通常为 `3306`,除非自定义过 --- ### ✅ 步骤三:创建 MySQL 数据库(如果尚未存在) 进入 MySQL 命令行或使用图形工具(如 Navicat、MySQL Workbench)执行: ```sql CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` --- ### ✅ 步骤四:测试连接和迁移 运行以下命令测试是否能正常连接数据库并生成表结构: ```bash python manage.py makemigrations python manage.py migrate ``` 如果成功,则说明 Django 已经正确连接到 MySQL。 你也可以运行 shell 测试连接: ```bash python manage.py shell ``` 然后输入: ```python from django.db import connection cursor = connection.cursor() print("Connected to database:", connection.settings_dict['NAME']) ``` --- ### 🔍 补充说明 - 使用 `utf8mb4` 是为了完整支持 Unicode 字符(比如表情符号)。 - 生产环境中建议不要使用 `root` 用户,而是创建专用数据库用户。 - 若使用 Docker 或云数据库(如阿里云 RDS、AWS RDS),注意网络权限和白名单设置。 --- ### ❓常见问题排查 | 问题 | 解决方案 | |------|----------| | `django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.` | 没有安装 `mysqlclient` 或未正确安装 | | `Access denied for user` | 检查用户名、密码、主机地址、MySQL 用户权限 | | `Unknown database 'xxx'` | 数据库未创建,请先手动创建 | | `Can't connect to MySQL server on 'localhost'` | 检查 MySQL 是否启动:`sudo service mysql start` | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值