django運行migrate報錯“django.db.utils.operationalError”的解決方法
在使用django項目的過程中,有時候在命令行中運行“python manage.py migrate”命令時會遇到“django.db.utils.operationalerror”的錯誤。本文將針對該問題提供詳細的解決方法。
問題情況
問題的具體表現是:
- 運行“Python manage.py makemigrations”命令正常
- 運行“python manage.py migrate”命令報錯“mysqldb._exceptions.operationalerror: (2026, ‘ssl connection error: unknown error number’)”
解決方法
該報錯的原因是客戶端和服務器的ssl設置不匹配導致的。客戶端沒有啟用ssl,而服務器啟用了ssl。針對此問題,可以采用以下解決方法:
- 在mysql服務器的配置文件(通常是/etc/my.cnf)中找到[mysqld]部分,添加“skip_ssl”配置項。
- 檢查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', } } }
登錄后復制