인증 플러그인 'caching_sha2_password'는 지원되지 않습니다.


89

파이썬 커넥터를 사용하여 MySQL 서버에 연결하려고합니다. lcherukuri인증 플러그인 으로 새 사용자 를 만들었습니다 mysql_native_password.

하지만 오류가 발생했습니다.

mysql.connector.errors.NotSupportedError : 인증 플러그인 'caching_sha2_password'가 지원되지 않습니다.

누군가 나를 도울 수 있습니까?

import mysql.connector

cnx = mysql.connector.connect(user='lcherukuri', password='password',
                              host='127.0.0.1',
                              database='test')
cnx.close()

여기에 이미지 설명 입력



@ 벤 네. MySQL Ver 8.0.11
phani

나는 또한 (윈도우 10)이 문제가 있고, 결국에 유용한 튜토리얼을 발견 : datacamp.com/community/tutorials/mysql-python 이 제안으로, 나는에서 mysql.connector 다운로드 dev.mysql.com/downloads/connector/ 파이썬 을 설치하고 성공했습니다.
johnnzy

답변:


87

캐싱 SHA-2 플러그 인증

MySQL은 8.0 년 caching_sha2_password보다는 플러그인 기본 인증입니다 mysql_native_password.

mysql_native_password더 이상 기본값이 아닌을 사용 하고 있습니다. 당신이 사용하고있는 가정 버전에 올바른 커넥터를 지정할 필요가 인수를 연결 개체를 인스턴스화 할 때auth_plugin

cnx = mysql.connector.connect(user='lcherukuri', password='password',
                              host='127.0.0.1', database='test',
                              auth_plugin='mysql_native_password')

동일한 문서에서 :

connect()메서드는 auth_plugin특정 플러그인을 강제로 사용하는 데 사용할 수 있는 인수를 지원합니다 . 예를 들어 서버가 sha256_password기본적 으로 사용하도록 구성되어 있고를 사용하여 인증하는 계정에 연결하려는 mysql_native_password경우 SSL을 사용하여 연결하거나을 지정 auth_plugin='mysql_native_password'합니다.


205

나는 auth_plugin='mysql_native_password'실수 mysql-connectormysql-connector-python(pip3를 통해) 대신 설치했기 때문에 동일한 문제가 있었고 통과 가 작동하지 않았습니다 . 누군가에게 도움이 될 수 있도록 여기에 남겨 두세요.


11
그것은 내 경우에 그것을 해결했습니다! 감사!
MK

3
감사! my-connector를 제거하고 mysql-connector-python을 설치했고 작동했습니다!
Razikh

1
내 경우에도 해결되었습니다. 나는 w3schools를 따라 가고 pip와 pip3에 mysql-connector를 설치했지만 w3schools는 내가 이것을 쓰는 시점에서 구식입니다. 이를 수행하는 적절한 방법은 pip 및 pip3에 mysql-connector-python을 설치하는 것입니다.
w3Develops

그렇다면 라이브러리를 어떻게 가져 왔습니까? "import mysql-connector-python"또는 "import mysql.connector"와 같습니다. 우리는 우리의 점을 대시 사용합니까?
coskukoz

나는 이것을 얼마 전에 가지고있어서 정확히 기억하지 못합니다. 그러나 github.com/mysql/mysql-connector-python살펴보면 아마도 "import mysql.connector"일 것입니다. "mysql-connector"를 제거하면 잘못된 것을 가져올 위험이 없습니다.
ozgeneral

42

이 질문은 이미 여기에 답변되어 있으며이 솔루션이 작동합니다.

sha2 비밀번호 캐싱은 mysql을 지원하지 않습니다.

다음 명령을 시도하십시오.

pip install mysql-connector-python

1
참고 mysql-connector되지 않습니다. mysql-connector-python위의 답변과 같이 사용해야합니다 .
Braden Holt 19 년

"pip install mysql-connector-python"은 내 문제를 해결합니다. 감사합니다.
Peter Chen

33

위의 솔루션 중 어느 것도 나를 위해 작동하지 않습니다. 다음 비디오를 볼 때까지 노력하고 매우 좌절했습니다. https://www.youtube.com/watch?v=tGinfzlp0fE

pip uninstall mysql-connector 일부 컴퓨터에서는 작동하고 다른 컴퓨터에서는 작동하지 않을 수 있습니다.

나는 다음을했다 :

mysql-connector로 인해 문제가 발생합니다.

  1. pip uninstall mysql-connector

    다음은 필요하지 않을 수 있지만 두 커넥터를 완전히 제거했습니다.

  2. pip uninstall mysql-connector-python

    mysql-conenct-python 커넥터를 다시 설치하십시오.

  3. pip install mysql-connector-python


완벽합니다. 나는 aupriya와 ozgeneral의 답변을 따랐고 둘 다 작동했습니다. 그러나 지침에 따라 mysql-connector를 완전히 제거한 다음 mysql-connector-python을 설치하는 것도 이점이 있습니다.
w3Develops

당신의 솔루션이 도움이되었습니다 :) 내가 mysql 5.7에서 mysql 8.0으로 업그레이드 mysql-connector-python하고 문제를 해결하기 위해 다시 설치해야했기 때문에
Ahtisham

9

비슷한 오류가 발생했습니다.

  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\authentication.py", line 191, in get_auth_plugin
    "Authentication plugin '{0}' is not supported".format(plugin_name))
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

mysql-connector-python 대신 mysql-connector를 설치했을 것입니다. 따라서 python3 용으로 다시 설치해야합니다.

pip3 install mysql-connector-python

4

Mysql 암호화 수정

ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';


4

동일한 문제가 있었지만 완전히 작동하지 않았기 때문에 내 해상도가 달랐습니다.

GitHub 포럼에서 찾았습니다. 복사하여 터미널에 붙여 넣으세요. 암호를 변경할 필요가 없습니다. 똑같을 수 있습니다.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';

3

Settings-> Project-> Project Interpreter로 이동하여 여기에서 최신 버전의 mysql-connector-python 패키지를 설치할 수 있습니다. 제 경우에는 mysql-connector-python 8.0.15였습니다.


3

코드를 거치지 않고 수정해야 할 사항을 수정하지 않고보다 영구적 인 솔루션을 얻으려면 : MySQL 8 설명서 에 따라이 문제를 해결하는 가장 쉬운 방법은 MySQL d 파일에 다음을 추가하고 MySQL 서버를 다시 시작하는 것입니다.

이것은 나를 위해 일했습니다!

MySQL 설치에서 8.0 이전 클라이언트를 제공해야하고 MySQL 8.0 이상으로 업그레이드 한 후 호환성 문제가 발생하는 경우 이러한 문제를 해결하고 8.0 이전 호환성을 복원하는 가장 간단한 방법은 이전 기본 인증 플러그인으로 되돌 리도록 서버를 재구성하는 것입니다 ( mysql_native_password). 예를 들어, 서버 옵션 파일에서 다음 행을 사용하십시오.

[mysqld]
#add the following file to your MySQLd file
    default_authentication_plugin=mysql_native_password

3

명령 프롬프트를 사용하여 아래 명령을 설치하십시오.

pip install mysql-connector-python

여기에 이미지 설명 입력


3

사용하다 pip install mysql-connector-python

그런 다음 다음과 같이 연결하십시오.

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",               #hostname
  user="Harish",                   # the user who has privilege to the db
  passwd="Harish96",               #password for user
  database="Factdb",               #database name
    auth_plugin = 'mysql_native_password',

)

2

2 일 동안 같은 오류가 발생하고 마침내 해결책을 찾았습니다. 모든 커넥터를 사용하여 설치된 모든 커넥터를 확인 pip list하고 제거했습니다. 제 경우에는 다음과 같습니다.

  1. mysql 커넥터
  2. mysql-connector-python
  3. mysql-connector-python-rf

사용하여 제거 pip uninstall mysql-connector하고 마지막으로 MySQL 공식 웹 사이트mysql-connector-python 에서 다운로드하여 설치했으며 잘 작동합니다.


2

pip3 install mysql-connector-python은 내 문제도 해결했습니다. mysql-connector 모듈 사용을 무시하십시오.


2

mysql-connector를 먼저 설치했기 때문에 운동을 할 수없는 사람들을 위해 다음을 수행했습니다.

1. 먼저 CMD에서 'pip'경로로 이동

2. 'pip list'명령어 사용

3. protobuf와 mysql-connector의 세 가지 패키지가 설치됩니다.

4. 각각 개별적으로 제거

5. 이제 mysql-connector-python 모듈을 새로 설치하십시오.

이것은 나를 위해 일했습니다.


1
  1. 아래 명령을 사용하여 mysql 커넥터를 설치하십시오.

    pip install mysql-connector-python-rf

  2. 명령을 사용하여 권한을 설정하십시오.

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; FLUSH PRIVILEGES;

  3. python 명령을 사용하여 mysql 데이터베이스에 연결

    mydb = mysql.connector.connect( host="localhost", user="root", passwd="very_strong_password", auth_plugin='mysql_native_password')


0

나도 같은 문제에 부딪쳤다. 내 문제는 실수로 잘못된 커넥터 버전을 설치했다는 것입니다. 파일 시스템에서 현재 설치된 버전을 삭제하고 (내 경로는 다음과 같습니다 : C : \ Program Files \ Python36 \ Lib \ site-packages) "pip install mysql-connector-python"을 실행합니다. 이것은 당신의 문제를 해결할 것입니다


0

이 오류를 해결하고 마지막 으로 mysql 라이브러리 대신 PyMySQL 을 설치하려고 시도 했는데 제대로 작동하고 있습니다.

감사.


0

다음과 같은 오류의 해결책을 찾고 있다면

오류 : 환경 오류로 인해 패키지를 설치할 수 없습니다. [WinError 5] Acces s가 거부되었습니다 : 'D : \ softwares \ spider \ Lib \ site-packages \ libmysql.dll' --user옵션 사용을 고려 하거나 권한을 확인하십시오.

해결책 : --user액세스 거부 오류를 발견하면 추가해야합니다 .

 pip install --user mysql-connector-python

이 명령을 cmd에 붙여넣고 문제를 해결하십시오.


0

거의 동일한 오류가 발생했습니다.

Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported

나를위한 해결책은 간단했습니다.

내 db 사용자 이름 / 암호 신임 정보가 올바르지 않습니다. 오류는 문제를 설명하지 않았기 때문에 다른 사람이이 문제에 부딪 힐 경우에 대비해 공유 할 것이라고 생각했습니다.


0

mysql-connector를 제거하고 (w3schools 자습서에 다음 자습서를 설치했습니다) 대신 mysql-connector-python을 설치했습니다. 효과가있었습니다.


0

MySql 8을 사용하여 코드를 DB에 연결할 때 동일한 오류가 발생했습니다. pip install mysql-connector-python을 사용하면이 오류가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.