如何在Django 2.0中配置MySQL?已成功安装mysqlclient
在Django 2.0中配置MySQL的后续步骤
好的,既然你已经成功安装了mysqlclient,接下来咱们一步步把Django和MySQL对接起来:
1. 准备MySQL数据库与权限
首先得确保你已经在MySQL中创建好目标数据库,并且有一个具备足够操作权限的用户(比如能创建、修改表的权限)。如果还没完成,可以通过MySQL命令行执行:
-- 创建支持全字符集的数据库 CREATE DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建专属用户并授权 CREATE USER 'your_db_user'@'localhost' IDENTIFIED BY 'your_db_password'; GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_db_user'@'localhost'; FLUSH PRIVILEGES;
如果是远程数据库,把localhost换成%或具体IP,同时确保MySQL服务允许远程连接。
2. 修改Django项目的数据库配置
打开项目根目录下的settings.py文件,找到DATABASES配置块,替换掉默认的SQLite配置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_db_name', # 刚才创建的数据库名称 'USER': 'your_db_user', # 授权的MySQL用户名 'PASSWORD': 'your_db_password', # 用户密码 'HOST': 'localhost', # 本地数据库填localhost,远程填对应IP 'PORT': '3306', # MySQL默认端口,未修改则保持 'OPTIONS': { 'charset': 'utf8mb4', # 和数据库字符集一致,避免乱码 }, } }
3. 测试数据库连接是否正常
为了避免后续迁移出问题,先验证连接有效性。在项目根目录运行:
python manage.py shell
进入Django Shell后执行以下代码:
from django.db import connection try: connection.ensure_connection() print("数据库连接成功!") except Exception as e: print(f"连接失败:{e}")
如果提示成功就继续下一步;若报错,检查用户名、密码、数据库名是否正确,或MySQL服务是否启动。
4. 执行数据库迁移
Django需要创建默认系统表(比如用户、权限相关表),同时自定义模型也需要生成对应数据表。在项目根目录依次运行:
# 生成迁移文件(检测模型变化,生成对应SQL脚本) python manage.py makemigrations # 执行迁移,将表创建到MySQL中 python manage.py migrate
执行完成后,登录MySQL就能看到Django创建的一系列表,比如auth_user、django_migrations等。
额外注意事项
- 确保MySQL服务处于运行状态:Windows可在服务列表查看,Linux用
systemctl status mysql检查。 - 若迁移时出现版本兼容问题,可通过
pip show mysqlclient查看版本,Django 2.0要求mysqlclient >= 1.3.13。 - 避免中文乱码:确认数据库、Django配置的字符集均为
utf8mb4(MySQL的utf8实际是utf8mb3,不支持emoji等特殊字符)。
内容的提问来源于stack exchange,提问作者bilard
相关产品推荐
相关产品推荐

