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

Django项目中如何正确配置MySQL数据库连接?

Django 配置 MySQL 数据库,需在 settings.py 中设置 DATABASES,指定数据库引擎、名称、用户、密码、主机和端口等信息,安装 mysqlclient 驱动,运行迁移命令创建数据库表。

Django 配置 MySQL 数据库主要有以下两种方法:

Django项目中如何正确配置MySQL数据库连接?  第1张

直接在settings.py 文件中添加数据库配置信息

1、安装 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 安装依赖。

2、配置数据库连接信息:打开 Django 项目的settings.py 文件,找到DATABASES 配置项,修改为如下内容(以连接到本地 MySQL 数据库为例):

   DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
           'NAME': 'your_database_name',  # 数据库名称
           'USER': 'your_database_user',  # 数据库登录用户名
           'PASSWORD': 'your_database_password',  # 密码
           'HOST': 'localhost',  # MySQL服务器地址,本地一般为 localhost
           'PORT': '3306',  # MySQL端口号,默认为 3306
       }
   }

your_database_name、your_database_user、your_database_password 需替换为你实际的数据库名称、用户名和密码。

将数据库配置信息存到一个文件中,在settings.py 文件中将其引入

1、创建数据库配置文件:新建一个名为my.cnf(名字可随意)的文件,内容如下:

   [client]
   database = your_database_name
   user = your_database_user
   password = your_database_password
   host = localhost
   port = 3306
   default-character-set = utf8

同样需要将其中的数据库名称、用户名、密码等信息替换为实际值。

2、 :在settings.py 文件中的DATABASES 配置项中进行如下设置:

   DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.mysql',
           'OPTIONS': {
               'read_default_file': 'path/to/your/my.cnf',  # 这里填写 my.cnf 文件的绝对路径或相对路径
           }
       }
   }

完成上述配置后,还需要进行数据库迁移操作,以将 Django 模型应用到数据库中,进入项目根目录,运行以下命令:

python manage.py makemigrations:根据项目中的模型创建数据库迁移文件。

python manage.py migrate:执行数据库迁移,将模型应用到实际的数据库中。

常见问题及解答

1、问题:安装mysqlclient 时出现权限错误怎么办?

解答:如果在安装mysqlclient 时遇到权限错误,可以尝试使用管理员权限运行命令提示符或终端,然后再执行安装命令,在 Windows 系统中,右键点击命令提示符图标,选择“以管理员身份运行”;在 Linux 或 Mac 系统中,可以使用sudo 命令提升权限,如sudo pip install mysqlclient。

2、问题:配置好数据库后连接失败,提示 “Can’t connect to MySQL server on ‘localhost:3306’ (10061)” 错误怎么办?

解答:这可能是由于 MySQL 服务未启动或者防火墙阻止了连接,检查 MySQL 服务是否已启动,可以通过以下命令查看(以 Windows 系统为例):

打开命令提示符,输入netstat -an | findstr 3306,如果看不到与端口 3306 相关的监听信息,则说明 MySQL 服务未启动,此时可以打开“服务”管理器,找到 MySQL 服务并启动它,如果是防火墙问题,可以将 MySQL 的端口添加到防火墙的信任列表中,允许其通过防火墙进行通信。

0