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 = mysql.connector.connect(
host= "localhost",
user = "root",
password = "zerobase"
)
pip install mysql-connector-python
처음엔 위와 같이 설치 했는데 검색을 하니 rf를 붙여서 하면 해결된다는 말이 많아 해보니 바로 해결됐다.
pip install mysql-connector-python-rf
분명 잘 해결되는 것을 확인했는데 다음 날 되어서 다시 실행하니 또 같은 에러가 다시 발생
cashing_sha2_password로 되어있는 인증 방식을 이전의 mysql_native_password로 바꾸는 방법
mysql -u root -p
Enter password:
use mysql;
select user, host, plugin from user;
ALTER USER 'userID'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
하지만 나는 이미 mysql_native_password로 되어있던걸...?
그럼 이게 또 문제가 아니라는 것인데
컴퓨터에 설치되어있는 mysql-connector가 문제였던것 같다. 오래된 버전이라 다들 삭제하라고 해서 삭제를 해봤다.
pip uninstall mysql-connector
pip uninstall mysql-connector-python
둘 다 삭제하고 다시 mysql-connector-python
만 새로 설치해줬다.
pip install mysql-connector-python
그랬더니 이제 잘 작동 되는 모습을 볼 수 있었다.
시도 1번 했을 땐 가상환경에 mysql-connector
를 삭제하고 rf
를 설치 해뒀었는데 어제는 잘 작동됐다가 오늘 컴퓨터에 설치되어있던 버전이랑 충돌을 한게 아닐까? 하는 나의 추측
어쨌든 해결돼서 마음이 편안하다.