Django MySQL-正确的连接方式
我一直在使用Django连接到本地计算机上的MySQL,并使用以下方法进行连接:Django MySQL-正确的连接方式,mysql,django,docker,Mysql,Django,Docker,我一直在使用Django连接到本地计算机上的MySQL,并使用以下方法进行连接: 运行pip安装mysqlclient并适当更新requirements.txt文件 将settings.py中的数据库连接更新为以下内容: 'ENGINE': 'mysql.connector.django', 'NAME': ...., 'USER': ...., “引擎”:“django.db.backends.mysql”, “名称”:, “用户”: 当我开始使用Dockerfile尝试运行Django
'ENGINE': 'mysql.connector.django',
'NAME': ....,
'USER': ....,
“引擎”:“django.db.backends.mysql”,“名称”:,
“用户”:
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
在我看来,有两种可能的解决方案:
1)调整Dockerfile,以便安装mysqlclient所需的软件。这实际上比预期的要复杂一些。您能为python提供一些建议吗:3.10.0a5-alpine3.12
2)我在读关于mysql连接器python的文章。目前我还没有得到这个工作。我使用pip安装了它,更新了需求文件,然后将settings.py文件更改为如下内容:
'ENGINE': 'mysql.connector.django',
'NAME': ....,
'USER': ....,
我有两个方面需要关注,我非常感谢您的帮助:
1)以下哪种方法是使用Django连接MySQL最合适的方法(或者有更合适的方法)?你能告诉我更新我的项目的确切程序吗
2)我关心的是匹配库的适当版本以连接到我的MySQL版本。例如,我的Mac上有MySQL 5.7.29。mysql connector python有很多不同的版本(当前版本为8.0.23)。如何确保mysql connector python的版本适合我的mysql版本?类似地,如何确保Dockerfile的安装命令适用于我的MySQL版本
谢谢
标记
Dockerfile有点变化,因为我尝试了不同的技术,但这是一个示例:
FROM python:3.10.0a5-alpine3.12
ENV PYTHONUNBUFFERED 1
# Echo the Environment variables to help with debugging
RUN echo $DJANGO_DEBUG
RUN echo $API_ENVIRONMENT
EXPOSE 8080
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install --no-cache-dir -r requirements.txt
COPY . /code/
RUN python3 manage.py collectstatic --noinput
RUN python3 manage.py makemigrations
RUN python3 manage.py migrate
ENTRYPOINT gunicorn --bind 0.0.0.0:8080 --workers 3 brokerdata.wsgi
你能分享dockerfile吗?您是否在dockerfile中安装了mysql客户端?嗨,Iain,我添加了一个示例dockerfile。谢谢,mark您必须安装mysqlclient,我认为
mysql-client
或py3-mysqlclient
应该是您需要的:运行apk-update和&apk-add-py3-mysqlclient