settings.py
中安装
mysqlclient
库,
配置
DATABASES
项,指定
ENGINE
为
django.db.backends.mysql
,并设置数据库的
NAME
、
USER
、
PASSWORD
、
HOST
和
PORT
等参数。
Django 配置 MySQL 数据库主要有两种方式,以下是详细的步骤和注意事项:
1、直接在settings.py
文件中添加数据库配置信息
安装 MySQL 驱动:推荐使用mysqlclient
,可以使用以下命令安装:
pip install mysqlclient
如果在国内,有时使用豆瓣源会更快一些,可以使用命令pip install -i https://pypi.douban.com/simple mysqlclient
如果安装mysqlclient
报错,则需要先安装其依赖default-libmysqlclient-dev
,在 Ubuntu 系统上可以使用以下命令:
sudo apt update
(先更新软件包列表)
sudo apt install default-libmysqlclient-dev
(安装依赖)
settings.py
文件中,找到或添加DATABASES
配置项,并进行如下配置:
ENGINE
:设置为'django.db.backends.mysql'
,表示使用 MySQL 数据库引擎。
NAME
:填写要连接的数据库名称。
USER
:填写数据库登录用户名。
PASSWORD
:填写对应的密码。
HOST
:填写数据库主机 IP,默认为127.0.0.1
,即本地主机。
PORT
:填写数据库端口号,默认为3306
。
示例代码如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'cheng_pro', 'USER': 'cheng', 'PASSWORD': 'yanyan', 'HOST': '127.0.0.1', 'PORT': 3306, } }
2、将数据库配置信息存到一个文件中,在settings.py
文件中将其引入(推荐)
创建数据库配置文件:新建一个数据库配置文件,比如命名为mysql.cnf
(名字可以随意),配置文件内容如下:
[client] database = cheng_pro user = cheng password = yanyan host = 127.0.0.1 port = 3306 default-character-set = utf8
settings.py
文件中,找到或添加DATABASES
配置项,并进行如下配置:
ENGINE
:设置为'django.db.backends.mysql'
。
OPTIONS
:设置'read_default_file': '路径/到/mysql.cnf'
,这里的路径是mysql.cnf
文件相对于 Django 项目的位置。
示例代码如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file': 'utils/dbs/mysql.cnf', } } }
配置完成后,需要执行数据库迁移命令,以便 Django 可以根据模型创建或更新数据库表结构:
1、进入 Django 项目的根目录,在终端中输入以下命令:
python manage.py makemigrations
:根据项目中的模型生成数据库迁移文件。
python manage.py migrate
:将迁移应用到数据库,创建或更新数据库表结构。
如果在配置过程中遇到问题,可以参考以下常见问题及解决方案:
1、连接失败问题
检查 MySQL 服务是否启动:确保 MySQL 服务已启动并能正常工作,可以在终端中输入sudo service mysql status
(Ubuntu 系统)或net start mysql
(Windows 系统)来检查 MySQL 服务状态。
检查防火墙设置:MySQL 服务器和 Django 项目不在同一台机器上,确保 MySQL 服务器的防火墙允许外部连接,可以检查防火墙规则,或者暂时关闭防火墙进行测试。
检查数据库用户权限:确保用于连接数据库的用户拥有足够的权限,可以使用 MySQL 客户端工具登录数据库,检查用户的权限设置,并根据实际情况进行调整。
2、字符编码问题
指定默认字符编码:在使用 MySQL 时,有时会遇到字符编码问题,特别是涉及中文字符时,为了避免这种问题,可以在OPTIONS
中指定默认字符编码为utf8mb4
,这样可以处理包括表情符在内的所有 Unicode 字符。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_database_name', 'USER': 'your_database_user', 'PASSWORD': 'your_database_password', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': { 'charset': 'utf8mb4', }, } }
Django 配置 MySQL 数据库需要正确安装驱动、修改配置文件并进行数据库迁移等操作,同时要注意解决可能出现的连接失败和字符编码等问题,以确保 Django 能够顺利连接到 MySQL 数据库并进行数据交互。