[Error, Python, SQL] NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

박미영·2023년 4월 24일
1

ErrorCode, WarningCode

목록 보기
5/5

⚠️ERROR

NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

MySQL 8.0 이상의 버전을 사용할 경우 'caching_sha2_password' 에러가 나는 경우가 있다고 한다.



Python에서 MySQL을 사용하기 위해 MySQL Driver를 설치 한 후 Local Database 연결하는 과정에서 발생했다.

import mysql.connector
  • Local Database 연결
local = mysql.connector.connect(
    host= "localhost",
    user = "root",
    password = "zerobase"
)



💡시도 1

pip install mysql-connector-python

처음엔 위와 같이 설치 했는데 검색을 하니 rf를 붙여서 하면 해결된다는 말이 많아 해보니 바로 해결됐다.

pip install mysql-connector-python-rf

분명 잘 해결되는 것을 확인했는데 다음 날 되어서 다시 실행하니 또 같은 에러가 다시 발생



💡시도 2

cashing_sha2_password로 되어있는 인증 방식을 이전의 mysql_native_password로 바꾸는 방법

  • mysql 접속
mysql -u root -p
Enter password: 
  • 데이터베이스 선택, 사용자 계정 정보 확인
use mysql;
select user, host, plugin from user;
  • aching_sha2_password -> mysql_native_password
ALTER USER 'userID'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

하지만 나는 이미 mysql_native_password로 되어있던걸...?
그럼 이게 또 문제가 아니라는 것인데

💡시도 3

컴퓨터에 설치되어있는 mysql-connector가 문제였던것 같다. 오래된 버전이라 다들 삭제하라고 해서 삭제를 해봤다.

pip uninstall mysql-connector
pip uninstall mysql-connector-python

둘 다 삭제하고 다시 mysql-connector-python만 새로 설치해줬다.

pip install mysql-connector-python

그랬더니 이제 잘 작동 되는 모습을 볼 수 있었다.

시도 1번 했을 땐 가상환경에 mysql-connector를 삭제하고 rf 를 설치 해뒀었는데 어제는 잘 작동됐다가 오늘 컴퓨터에 설치되어있던 버전이랑 충돌을 한게 아닐까? 하는 나의 추측
어쨌든 해결돼서 마음이 편안하다.

0개의 댓글