Django mysql SSL connection error

lightcat·2022년 9월 19일
0

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',   # 사용할 DB 종류
        'NAME': 'stock',        # DB 이름
        'USER': 'stock',        # DB 계정 이름
        'PASSWORD': 'stock',    # DB 계정 패스워드
        'HOST': 'localhost',    # IP
        'PORT': '3306'          # PORT
    }
}

Django로 mysql을 접속하기 위해 사전에 mysql서버를 설치하고 위와같이 설정하여

python manage.py makemigrations stocksimul

명령어를 통해 mysql 접속시도 및 DB 초기화 마이그레이션 파일생성 시도를 하였으나

RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'defau
lt': (2026, 'SSL connection error: unknown error number')

와 같은 에러가 떨어졌다.


Windows의 경우 my.ini 파일
또는
Linux의 경우 my.cnf 파일에

[mysqld]
skip_ssl #ssl

과 같이 지정하여 ssl옵션을 DISABLED로 만들고 서비스를 재기동하면 된다고 하는데, my.ini파일 자체가 보이지 않았다.

%WINDIR%, C:, BASE_DIR에는 없고, %PROGRAMDATA% 폴더를 찾아보라는 해결법이 있어 들어가보았더니, 있다...!

skip_ssl 옵션을 추가, MYSQL80 서비스를 재시작하고 나서

show variables like '%ssl%'; 쿼리로 have_ssl,have_openssl 옵션을 확인하니,
YES -> DISABLED로 바뀌어있는 것을 확인.

이후 migration 기능을 수행하니 정상적으로 접속되는 것을 확인하였다.

python manage.py makemigrations stocksimul
python manage.py migrate stocksimul

오류 발생원인을 찾지못해, my.ini파일이 설치오류로 생기지 않은 줄 알고, MYSQL8.0 서버를 두번이나 재설치를 하면서 삽질하는 바람에, 이전에 만들어 두었던 DATABASE가 사라져서, DATABASE도 같이 생성해주었다. (USER는 설치 시에 같이 만들어 둠)

CREATE DATABASE stock CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON stock.* TO stock@localhost;
FLUSH PRIVILEGES;

참고
[Django] Execute python manage.py makemigrations error solution
[Solved] Windows MYSQL Error: django.db.utils.OperationalError: (2026, ‘SSL connection error: unknown error number‘)
MySQL my.ini location
MySQL-4.2.2.2 Using Option Files
Django에 MySQL 연동하기

1개의 댓글

comment-user-thumbnail
2022년 10월 17일

이 부분에서 한참 헤메다가 키보드 던질뻔 했는데 덕분에 해결했어요!
2026번 에러 해결하고 나니 또 2059번 에러가 생기긴 했는데 이건 금방 해결했네요 ㅋㅋ
글 감사합니다

답글 달기

관련 채용 정보