当前位置:首页 > 行业动态 > 正文

Django如何配置mysql数据库

在Django中配置MySQL数据库,需在 settings.py中安装 mysqlclient库, 配置 DATABASES项,指定 ENGINEdjango.db.backends.mysql,并设置数据库的 NAMEUSERPASSWORDHOSTPORT等参数。

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(安装依赖)

:在 Django 项目的settings.py 文件中,找到或添加DATABASES 配置项,并进行如下配置:

ENGINE:设置为'django.db.backends.mysql',表示使用 MySQL 数据库引擎。

NAME:填写要连接的数据库名称。

Django如何配置mysql数据库

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

:在 Django 项目的settings.py 文件中,找到或添加DATABASES 配置项,并进行如下配置:

Django如何配置mysql数据库

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:将迁移应用到数据库,创建或更新数据库表结构。

如果在配置过程中遇到问题,可以参考以下常见问题及解决方案:

Django如何配置mysql数据库

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 数据库并进行数据交互。