Django本地配置mysql(windows系统)

Django与MySQL集成指南
本文详细介绍如何在Windows环境下安装MySQL数据库并配置Django使用MySQL作为数据库后端,包括解决安装过程中遇到的各种问题。

原文链接:http://www.nicemxp.com/articles/5

一、本地安装MySql数据库存储引擎

首先需要在本机安装mysql 下载地址:https://dev.mysql.com/downloads/mysql/

根据自己本机的操作系统下载对应版本。

下面是我的安装步骤以及遇到的问题:

我下载的是mysql-5.7.18-winx64,将其解压到C盘根目录,路径:C:\mysql-5.7.18-winx64

将C:\mysql-5.7.18-winx64\bin 设置成环境变量

dos下进入C:\mysql-5.7.18-winx64\bin目录,执行 mysqld -install(这里我遇到了缺少msvcr120.dll,大概是因为自己本机没有

安装vs的原因,然后自己安装了个vs2013,该问题解决); 之后输入 mysqld --initialize 会自动在C:\mysql-5.7.18-winx64目录

下创建data文件夹

初始化root密码:

1.确保已经停止mysql服务,在dos下输入 net stop mysql
2.dos下输入 mysqld --skip-grant-tables  (在网上找的,不懂目的),之后DOS会卡死,不管他
3.另开一个dos,进入C:\mysql-5.7.18-winx64\bin,输入 mysql -u root 进入mysql数据库
4.依次输入:
use mysql
update user set authentication_string=password("123456") where user="root";(注意该处的分号)(将root密码设置为123456)
flush privileges;(注意该处分号)
exit

---------------mysql数据库引擎暂时做这些-----------------

二、为Django安装 mysql db api驱动—— MySQL-python

安装MySQL-python方式很多:

1.DOS下输入 pip install MySQL-python (注意大小写要一致) 
2.在 https://pypi.python.org/pypi/MySQL-python/ 下下载MySQL-python的压缩包 解压到本地MySQL-python-1.2.5,进入到MySQL-python-1.2.5
  下,输入 python setup.py install

以上两个步骤我都试过,最后都报了同一个问题 :Microsoft Visual C++ 9.0 is required < Unable to find vcvarsall.bat

这个需要安装vs2008 我刚装完个vs2013 不想装了 网上有说安装Microsoft Visual C++ Compiler for Python 2.7 路径:http://www.microsoft.com/en-us/download/details.aspx?id=44266解决的,我试了下,不报这个错了,但是还是有问题,cl编译状态有问题。

最后一个方式可以避开:

3: https://pypi.python.org/pypi/MySQL-python/ 下 直接下载MySQL-python-1.2.5.win32-py2.7.exe 这个不用编译可以直接安装 安装后OK了

-----------------MySQL-python--------------------------

装好后在django我们自己创建的app下配置setting.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'blogdata',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '',
        'PORT': '',
    }
}

ENGINE:存储引擎 mysql
NAME:数据库名(这个地方开始有点不理解,这个是你的应用需要操作的数据库,之前安装了mysql引擎,但是还没有创建任何数据库,所以等下还需要创建个数据库)
USER:安装sql引擎时的用户名 应该是root
PASSWORD: root用户的密码
HOST和PORT为空就好了

user和password是用来Django链接数据库用的用户和密码

之后按照正常的Django创建模型,修改models.py,创建好自己的模型后,

打开cmd 进入到你的项目路径下 执行 python manage.py makemigrations 为模型创建迁移文件 (在这里遇到了 mysql error You must reset your password using ALTER USER statement before executing this statement.

说我的密码过期了,在这里上网找到了重新更改mysql数据库引擎的root密码)

更改mysql 的root密码:

DOS下进入 C:\mysql-5.7.18-winx64\bin  输入 mysql -u root -p  会让你输入密码  输入 初始化设置的123456

之后:

1.SET PASSWORD = PASSWORD('123456'); (注意分号)
2.ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;(注意分号)
3.flush privileges;(注意分号)

之后在dos下在进入到你的Django 项目路径下 输入 python manage.py makemigrations 这回不报上面的错了,但是会说找不到 blogdata,就是上面说的我们还没有给这个应用创建一个mysql的数据库让他用来操作

创建一个数据库:

进入到C:\mysql-5.7.18-winx64\bin下  输入 mysql -u root -p

输入密码123456后

输入:create database blogdata default charset=utf8;(注意分号)

退出:exit

进入到Django项目目录 

python manage.py makemigrations 创建迁移文件 成功

python manage.py migrate 将models.py里的模型更新到blogdata数据库中 成功

查看我们更改的数据库

进入C:\mysql-5.7.18-winx64\bin 输入 mysql -u root -p 输入密码123456

输入:use blogdata

输入:show tables;(注意分号)

可以看到已经创建的数据表

输入: desc xxxxxxx;(注意分号,xxxx代表你想查看的数据表名)

会列出数据表中的内容。

以上差不多就是Django 配置MySQL的过程。

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` | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值