在将 Django 项目部署到 Docker 容器中时,遇到了一个与 MySQL 数据库连接相关的问题。具体表现为在执行数据库迁移时,Django 报错无法加载 MySQL 的 caching_sha2_password
认证插件。经过分析,这是由于 Docker 容器中缺少必要的 MySQL 客户端库,或者 MySQL 使用的默认认证方式不兼容容器中的配置。
在使用docker拉取镜像centos7后, 由于Centos7官方停止了支持, 导致官方yum仓库无法使用, 因此需要换源
bashdocker pull gyc0109/centos7
bash# Base images 基础镜像
FROM centos:centos7.9.2009
# MAINTAINER 维护者信息
LABEL maintainer gyc0109@gmail.com
# 下载并替换 CentOS 镜像源
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo && \
yum clean all && \
yum makecache
由于国内Docker被屏蔽, 使用Docker变得十分麻烦, 虽然有Docekr镜像站点, 但是总是非常不稳定, 因此我在Github上找到了使用服务器自建Docker镜像站点的方法.
在 Django 项目中,有时我们需要在数据库初始化时自动向某些表中插入初始数据。本文将介绍两种方法来实现这一目标:使用 Django 的信号系统和在迁移文件中编写自定义代码。