我想将MySQL与Django集成,MySQL在Docker上运行,我将这样的配置通过Django连接到db docker:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'restaurant',
'HOST': 'db',
'PORT': '3306',
'USER': 'root',
'PASSWORD': 'root',
'default-character-set': 'utf8',
'OPTIONS': {
'init_command': 'SET default_storage_engine=INNODB',
}
}
}
但是,当Django尝试连接到mysql数据库时,会抛出此错误:
我尝试通过pip安装mysqlclient,但是出现此错误:
这些是docker-compose.dev.yml和Dockerfile配置。
如果某人需要完整的代码,here您可以找到它,并用docker-compose -f docker-compose.dev.yml up --build
对其进行测试。
谢谢:)。
答案 0 :(得分:2)
mysqlclient具有本机依赖性,必须先安装本机依赖性,然后才能pip install
。在docker中运行时,尤其是在高山中运行时,您可能想切换到使用mysql-connector-python
,它是一个纯Python库,没有任何本地依赖项,例如mysqlclient。如果要使用mysql.connector.django
,请更新您的需求文件并更新设置以使用mysql-connector-python
。
答案 1 :(得分:0)
另一个回应是添加:
RUN apk add --no-cache bash mariadb-dev mariadb-client mariadb-libs python3-dev build-base
在dockerfile上。