速卖通素材
努力

阿里云ECS Ubuntu 22.04使用宝塔部署Django项目时数据库怎么配置?

服务器

在阿里云 ECS Ubuntu 22.04 上使用宝塔面板(BT Panel)部署 Django 项目时,数据库配置通常分为“创建数据库”“在 Django 代码中连接”两个核心步骤。由于你使用的是宝塔面板,推荐直接使用其内置的 MySQL/MariaDB 服务,这样管理最方便。

以下是完整的操作流程:

第一步:在宝塔面板中创建数据库

  1. 登录宝塔面板:打开浏览器访问你的宝塔面板地址(通常是 http://IP:8888)。
  2. 进入数据库管理:在左侧菜单栏点击【数据库】。
  3. 创建新数据库
    • 点击右上角的【添加】按钮。
    • 数据库名:填写 Django 项目中将要使用的数据库名称(例如 my_django_db)。
    • 用户名:系统会自动生成或让你自定义(建议自定义以便记忆,例如 django_user)。
    • 密码:设置一个强密码(务必记下来,后面配置要用)。
    • 权限:选择“所有主机”(或者保留默认,如果本地开发需允许远程连接则选所有主机;如果是纯内网部署,默认即可)。
    • 点击【确定】完成创建。

注意:Ubuntu 22.04 默认安装的是 MariaDB(宝塔通常自动安装),它与 MySQL 兼容,Django 可以直接连接。


第二步:修改 Django 项目的 settings.py

找到你的 Django 项目根目录下的 settings.py 文件,修改 DATABASES 配置部分。

假设你刚才创建的数据库信息如下:

  • 数据库名:my_django_db
  • 用户名:django_user
  • 密码:YourStrongPassword123!
  • 主机:localhost (因为宝塔的数据库服务运行在同一台机器上)
  • 端口:3306 (默认)

settings.py 中的 DATABASES 配置修改为以下内容:

import os

# ... 其他配置 ...

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 必须指定为 mysql 后端
        'NAME': 'my_django_db',                # 第一步中创建的数据库名
        'USER': 'django_user',                 # 第一步中创建的用户名
        'PASSWORD': 'YourStrongPassword123!',  # 第一步中设置的密码
        'HOST': 'localhost',                   # 宝塔默认安装在本地,填 localhost 即可
        'PORT': '3306',                        # 默认端口
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4',              # 关键:确保字符集支持 emoji 等符号
        },
    }
}

⚠️ 重要依赖检查

Django 连接 MySQL 需要 Python 驱动。如果你还没有安装,需要在服务器终端执行以下命令:

# 安装 python-mysqlclient (推荐,性能最好)
pip install mysqlclient

# 或者安装 pymysql (纯 Python 实现,安装简单但稍慢,需额外配置)
# pip install pymysql
# 如果使用 pymysql,还需在 __init__.py 中添加:
# import pymysql; pymysql.install_as_MySQLdb()

提示:Ubuntu 22.04 环境下,安装 mysqlclient 可能需要先安装开发包:

sudo apt update
sudo apt install python3-dev default-libmysqlclient-dev build-essential

第三步:迁移数据库并启动服务

配置完成后,你需要让 Django 同步数据库结构。

  1. 执行迁移
    在项目目录下(即包含 manage.py 的目录)运行:

    python3 manage.py migrate

    如果看到 Running migrations... 且最后显示 OK,说明数据库连接成功。

  2. 创建超级管理员(可选):

    python3 manage.py createsuperuser
  3. 在宝塔部署站点

    • 回到宝塔面板 -> 【网站】 -> 【添加站点】。
    • 绑定域名,根目录指向你的 Django 项目目录(如 /www/wwwroot/your_project)。
    • 在【网站设置】->【PHP版本】中,确保选择的是 Python 模式(宝塔通常有专门的 Python 应用管理,或者使用 Nginx + uWSGI/Gunicorn 配置)。
    • 推荐使用宝塔的【软件商店】安装 uWSGIGunicorn 来管理 Django 进程。

常见问题排查

  • Connection Refused: 检查防火墙是否开放了 3306 端口。但在同一台服务器上,通常不需要开放公网端口,只需确保 HOSTlocalhost127.0.0.1
  • Access Denied: 检查 settings.py 中的用户名和密码是否与宝塔面板中创建的一致,注意大小写。
  • Character Set Error: 如果插入中文或 Emoji 报错,请确保数据库、表、字段以及 settings.py 中的 charset 都设置为 utf8mb4
  • Ubuntu 22.04 特有问题:Ubuntu 22.04 对 Python 环境隔离要求较高,建议在宝塔的【Python 项目管理】中创建一个独立的虚拟环境(Virtualenv),避免系统自带的 Python 冲突。

按照以上步骤操作,你的 Django 项目就能顺利连接到宝塔面板管理的数据库了。

未经允许不得转载:轻量云Cloud » 阿里云ECS Ubuntu 22.04使用宝塔部署Django项目时数据库怎么配置?