प्रमाणीकरण प्लगइन 'caching_sha2_password' समर्थित नहीं है


90

मैं अजगर कनेक्टर के साथ एक 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 वर 8.0.11
फणी

मुझे भी यह समस्या थी (विंडोज 10 पर), और आखिरकार इसमें एक उपयोगी ट्यूटोरियल मिला: datacamp.com/community/tutorials/mysql-python जैसा कि वहाँ सुझाया गया है, मैंने my.mql.connector को dev.mql.com/downloads/connector/ से डाउनलोड किया। अजगर और इसे स्थापित करने के बाद सफलता मिली।
जॉनीजी

जवाबों:


87

प्रति कैशिंग SHA-2 प्लगेबल ऑथेंटिकेशन

MySQL 8.0 में, के caching_sha2_passwordबजाय डिफ़ॉल्ट प्रमाणीकरण प्लगइन है mysql_native_password

आप उपयोग कर रहे हैं mysql_native_password, जो अब डिफ़ॉल्ट नहीं है। मान लिया जाये कि आप उपयोग कर रहे आपके संस्करण के लिए सही कनेक्टर आप निर्दिष्ट करने की आवश्यकता तर्क अपना कनेक्शन वस्तु instantiatingauth_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, या तो एसएसएल का उपयोग करके कनेक्ट करें या निर्दिष्ट करें auth_plugin='mysql_native_password'


207

मुझे एक ही समस्या थी और पास होने से auth_plugin='mysql_native_password'काम नहीं चला, क्योंकि मैं गलती mysql-connectorसे mysql-connector-python(pip3 के माध्यम से) स्थापित हो गया । बस इस मामले में यहाँ छोड़ने से यह किसी की मदद करता है।


11
मेरे मामले में यह हल कर दिया! धन्यवाद!
एमके

3
धन्यवाद! मेरे कनेक्टर की स्थापना रद्द की और mysql-कनेक्टर-अजगर स्थापित किया और यह काम किया!
रज़िख

1
इसने इसे मेरे मामले में भी हल कर दिया। मैंने w3schools का अनुसरण किया और पाइप और pip3 पर mysql-कनेक्टर स्थापित किया लेकिन w3schools उस समय पुराना है जब मैं यह लिख रहा हूं। ऐसा करने का उचित तरीका पाइप और pip3 पर mysql-कनेक्टर-अजगर स्थापित है।
w3Develops

आपने पुस्तकालय का आयात कैसे किया? यह "आयात mysql-कनेक्टर-अजगर" या "आयात mysql.connector" की तरह है। क्या हम अपने डॉट को डेश करते हैं?
coskukoz

मेरे पास यह कुछ समय पहले था इसलिए मुझे ठीक से याद नहीं है। लेकिन github.com/mysql/mysql-connector-python पर एक नज़र डालने पर यह संभवतः "आयात mysql.connector" है। ध्यान दें कि यदि आप "mysql-कनेक्टर" की स्थापना रद्द करते हैं, तो आपको गलत चीज़ आयात करने का जोखिम नहीं है।
ओजेनराल

42

यह सवाल पहले से ही यहां दिया गया है और यह समाधान काम करता है।

कैशिंग sha2 पासवर्ड mysql समर्थित नहीं है

बस इस आदेश का प्रयास करें:

pip install mysql-connector-python

1
ध्यान दें कि mysql-connectorपदावनत किया जाता है। आपको mysql-connector-pythonउपरोक्त उत्तर में दिखाया गया है।
ब्रैडेन होल्ट

"पाइप स्थापित mysql-कनेक्टर-अजगर" मेरी समस्या का समाधान। बहुत बहुत धन्यवाद।
पीटर चेन

33

उपरोक्त समाधान में से कोई भी मेरे लिए काम नहीं करता है। मैंने निम्न वीडियो देखने तक कोशिश की और बहुत निराश हुआ: https://www.youtube.com/watch?v=tGinfzl00EE

pip uninstall mysql-connector कुछ कंप्यूटर पर काम करते हैं और यह अन्य कंप्यूटर के लिए काम नहीं कर सकता है।

मैंने अनुसरण किया:

Mysql-कनेक्टर समस्या का कारण बनता है।

  1. pip uninstall mysql-connector

    निम्नलिखित की आवश्यकता नहीं हो सकती है लेकिन मैंने दोनों कनेक्टर को पूरी तरह से हटा दिया है।

  2. pip uninstall mysql-connector-python

    mysql-conenct-python कनेक्टर को फिर से स्थापित करें।

  3. pip install mysql-connector-python


बिल्कुल सही, मैंने अनुप्रिया और ओजगेनरल के जवाबों का पालन किया और उन दोनों ने काम किया। लेकिन मुझे mysql-कनेक्टर को पूरी तरह से अनइंस्टॉल करने के लिए आपके निर्देशों का पालन करने में भी लाभ मिलता है और फिर mysql-कनेक्टर-पायथन स्थापित करें।
w3Develops

आपने समाधान में मदद की :) क्योंकि मैंने mysql 5.7 से mysql 8.0 में अपग्रेड किया था और मुझे mysql-connector-pythonसमस्या को ठीक करने के लिए फिर से स्थापित करना पड़ा
Ahtisham

10

मुझे भी इसी तरह की त्रुटि मिली

  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-कनेक्टर-अजगर के बजाय mysql-कनेक्टर स्थापित किया है। तो आपको इसे python3 के लिए फिर से इंस्टॉल करने की आवश्यकता है:

pip3 install mysql-connector-python

4

माईस्केल एन्क्रिप्शन को संशोधित करें

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

आप सेटिंग्स-> प्रोजेक्ट-> प्रोजेक्ट इंटरप्रेटर में जा सकते हैं और यहाँ mysql-कनेक्टर-पायथन पैकेज का नवीनतम संस्करण स्थापित कर सकते हैं। मेरे मामले में यह mysql-कनेक्टर-पायथन 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-कनेक्टर-पायथन
  3. mysql-कनेक्टर-पायथन-आरएफ

इनका उपयोग करके अनइंस्टॉल किया pip uninstall mysql-connectorऔर अंत में MySQL की आधिकारिक वेबसाइटmysql-connector-python से डाउनलोड और इंस्टॉल किया और यह अच्छी तरह से काम करता है।


2

pip3 स्थापित mysql-कनेक्टर-अजगर ने मेरी समस्या को भी हल किया। Mysql-कनेक्टर मॉड्यूल का उपयोग करके अनदेखा करें।


2

जो लोग बाहर काम नहीं कर सकते, क्योंकि उन्होंने पहले mysql-कनेक्टर स्थापित किया था, मैंने निम्नलिखित कार्य किया:

सीएमडी पर 1.First 'पाइप' की राह पर

2. 'पाइप सूची' आदेश का उपयोग करें

3. वहाँ तीन संकुल स्थापित किया जाएगा अर्थात् छह, protobuf और mysql-कनेक्टर

4. उनमें से प्रत्येक को अलग से स्थापित करें

5. अब नए सिरे से mysql-कनेक्टर-पायथन मॉड्यूल स्थापित करें

इसने मेरे लिए काम किया


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. 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-package) और फिर "पाइप स्थापित mysql-कनेक्टर-पायथन" निष्पादित करें। इससे आपकी समस्या का समाधान हो जाना चाहिए


0

मैं इस त्रुटि को हल करने का प्रयास करता हूं और अंत में mysql लाइब्रेरी के बजाय PyMySQL स्थापित करता हूं और यह ठीक से काम कर रहा है।

धन्यवाद।


0

यदि आप निम्नलिखित त्रुटि के समाधान की तलाश में हैं

ERROR: एन्वायरन्मेंटएरर के कारण पैकेज स्थापित नहीं कर सका: [WinError 5] Acces s से इनकार किया जाता है: 'D: \ softwares \ मकड़ी \ Lib \ साइट-संकुल \ 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-कनेक्टर की स्थापना रद्द की (मैंने w3schools ट्यूटोरियल पर ट्यूटोरियल स्थापित किया) और इसके बजाय mysql-कनेक्टर-पायथन स्थापित किया। इसने काम कर दिया।


0

MySql 8 का उपयोग करते हुए मुझे अपने कोड को DB से कनेक्ट करते समय एक ही त्रुटि मिली, पाइप इंस्टॉल mysql-कनेक्टर-पायथन का उपयोग करके इस त्रुटि को हल किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.