django運(yùn)行migrate報(bào)錯(cuò)“django.db.utils.operationalError”的解決方法
在使用django項(xiàng)目的過(guò)程中,有時(shí)候在命令行中運(yùn)行“python manage.py migrate”命令時(shí)會(huì)遇到“django.db.utils.operationalerror”的錯(cuò)誤。本文將針對(duì)該問(wèn)題提供詳細(xì)的解決方法。
問(wèn)題情況
問(wèn)題的具體表現(xiàn)是:
- 運(yùn)行“python manage.py makemigrations”命令正常
- 運(yùn)行“Python manage.py migrate”命令報(bào)錯(cuò)“mysqldb._exceptions.operationalerror: (2026, ‘ssl connection error: unknown error number’)”
解決方法
該報(bào)錯(cuò)的原因是客戶端和服務(wù)器的ssl設(shè)置不匹配導(dǎo)致的。客戶端沒(méi)有啟用ssl,而服務(wù)器啟用了ssl。針對(duì)此問(wèn)題,可以采用以下解決方法:
- 在mysql服務(wù)器的配置文件(通常是/etc/my.cnf)中找到[mysqld]部分,添加“skip_ssl”配置項(xiàng)。
- 檢查mysqlclient是否支持安全連接。如果支持,可以在django的settings.py文件中添加以下配置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': 'localhost', 'PORT': '3306', 'NAME': 'my_database', 'USER': 'my_user', 'PASSWORD': 'my_password', 'OPTIONS': { 'sslmode': 'disable', } } }
登錄后復(fù)制