MYSQL ERROR 2049 (HY000): पुराने का उपयोग कर कनेक्शन (पूर्व 4.1.1) प्रमाणीकरण प्रोटोकॉल का इस्तेमाल किया (ग्राहक विकल्प 'Secure_auth' सक्षम)


9

जब मैंने सभी डेटाबेस डंप को पुनर्स्थापित करने की कोशिश की जो 5.0 संस्करण में 5.6 संस्करण में है, तो यह बहाल हो गया और उसके बाद जब मैंने फिर से कनेक्ट करने का प्रयास किया, तो मुझे निम्न त्रुटि मिल रही है

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol ref used (client option 'secure_auth' enabled)..

मैंने My.ini में निम्नलिखित पंक्तियों को जोड़ने की कोशिश की है और सेवा को फिर से शुरू किया है, लेकिन यह मुद्दा तब तक कायम है।

स्किप-ग्रांट-टेबल निम्नलिखित लिंक का कहना है कि MYSQL में एक बग है।

https://github.com/santisaez/powerstack/blob/master/packages/mysql/mysql-powerstack-secure_auth.patch

किसी को भी इस समाधान के लिए कोई सुधार है?

जवाबों:


6

यह एक बग नहीं है यदि आपके पास पासवर्ड वाले उपयोगकर्ता खाते हैं जो प्राचीन पुराने हैशिंग एल्गोरिथ्म का उपयोग करते थे। यदि आप अपने द्वारा पोस्ट किए गए लिंक में उल्लिखित बग रिपोर्ट पढ़ते हैं:

http://bugs.mysql.com/bug.php?id=69027

[१ मई १५:२४] टोड किसान

इसके लिए वर्कअराउंड ("समाधान", वास्तव में) प्रभावित उपयोगकर्ता के लिए पासवर्ड को 4.1-पोस्ट हैश में बदलना है। यह वास्तव में एक अनुशंसित सर्वोत्तम अभ्यास है, भले ही - पासवर्ड हैशिंग और प्राधिकरण प्रक्रिया 4.1 से पहले उल्लेखनीय सुरक्षा सीमाएं हैं ( http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html पर प्रलेखन में चर्चा की गई है) )।

mysql5.6 सर्वर पर स्कीमा के 5.0 संस्करण को पुनर्स्थापित करना किसी भी दर पर एक बुरा विचार है, क्योंकि 5.6 में कुछ तालिकाओं में अतिरिक्त स्तंभ हैं और कुछ पूरी तरह से नई तालिकाएं हैं, जो आपके द्वारा mysqldump को कॉन्फ़िगर करने के आधार पर अब गायब नहीं हो सकती हैं या हो सकती हैं। डंप फ़ाइल बनाया। आपको अन्य समस्याएं हो सकती हैं जिन्हें आप तुरंत नहीं देख सकते हैं।

इसके अलावा, मैंने skip-grant-tablesलेख में उल्लेख नहीं किया है ... लेकिन यदि आप सर्वर पर उस विकल्प को सही ढंग से लागू करते हैं, तो सभी प्रमाणीकरण को दरकिनार कर दिया जाता है और आपको पासवर्ड लॉग इन और रीसेट करने में सक्षम होना चाहिए।


8

यदि आपके पास कोई विकल्प नहीं है, तो कमांड लाइन पर, निम्नलिखित का उपयोग करें।

mysql -uTheUseerNAme -pThePassword DbName -h HostName --skip-secure-auth

आशा है कि यह किसी की मदद करता है, क्योंकि यह एक लिनक्स से कनेक्ट करने में मेरी समस्या थी


यह मेरे लिए काम नहीं करता है। मुझे अभी भी त्रुटि संदेश मिलता है।
फैंचाइना

6

यदि आप MySQL कार्यक्षेत्र का उपयोग करते हैं, तो आपको इस विकल्प की जाँच करने की आवश्यकता है:

यहां छवि विवरण दर्ज करें


जबकि यह डेटाबेस से जुड़ने के लिए काम करता है, आयात / निर्यात नहीं कर पाने की समस्या बनी रहेगी। मैंने इसका परीक्षण किया है और इसकी पुष्टि की है, जैसा कि मैं वर्तमान में पुराने प्रोटोकोल प्रोटोकॉल के साथ डेटा आयात / निर्यात करने के लिए एक रास्ता तलाश रहा हूं।
10

धन्यवाद! मेरे लिए यह तब काम किया जब मैं वर्कबेंच का उपयोग करके कनेक्ट करने का प्रयास करता हूं।
हुंय विन्ह फाट

मैंने पाया कि यह विकल्प कार्यक्षेत्र संस्करण 6.0.7 में है लेकिन नवीनतम संस्करण में नहीं है।
मियां असबत अहमद

1

यह वास्तव में पिछले उत्तर पर एक टिप्पणी के रूप में है, लेकिन एक StackExchange टिप्पणी में फिट होने के लिए बहुत बड़ा है।

मैं भी इस समस्या से पीड़ित था। इसलिए मैंने नए स्टाइल के हैश के साथ एक नया उपयोगकर्ता बनाया, और अब बिना किसी परेशानी के उस नए उपयोगकर्ता का उपयोग करें। यहाँ मैंने क्या किया है:

    [172.16.2.222:mysql Thu Nov  7 16:16:25 2013]> use mysql;
    Database changed
    [172.16.2.222:mysql Thu Nov  7 16:22:23 2013]> describe user;
    describe user;
    +-----------------------+-----------------------------------+------+-----+---------+-------+
    | Field                 | Type                              | Null | Key | Default | Extra |
    +-----------------------+-----------------------------------+------+-----+---------+-------+
    | Host                  | char(60)                          | NO   | PRI |         |       |
    | User                  | char(16)                          | NO   | PRI |         |       |
    | Password              | char(41)                          | NO   |     |         |       |

मुझे यह देखकर खुशी हुई कि हमारा पासवर्ड कॉलम नई शैली की राख रखने के लिए पहले से ही पर्याप्त था। (यदि यह 41 वर्णों से कम चौड़ा होता, तो शायद मैं इसे और अधिक व्यापक बनाने का साहस नहीं कर सकता था :-)

    [172.16.2.222:mysql Thu Nov  7 16:13:10 2013]> show variables like '%pass%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | old_passwords   | ON    |
    | report_password |       |
    +-----------------+-------+
    2 rows in set (0.06 sec)

old_passwordsकिया जा रहा है ONस्पष्ट रूप से, समस्या यह है तो मैं अस्थायी रूप से इसे बदल दिया है:

    [172.16.2.222:mysql Thu Nov  7 16:13:59 2013]> set session old_passwords = 'OFF';
    Query OK, 0 rows affected (0.05 sec)

    [172.16.2.222:mysql Thu Nov  7 16:14:12 2013]> show variables like '%pass%';
    show variables like '%pass%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | old_passwords   | OFF   |
    | report_password |       |
    +-----------------+-------+
    2 rows in set (0.06 sec)

फिर मैंने एक नया उपयोगकर्ता बनाया:

    [172.16.2.222:mysql Thu Nov  7 16:14:16 2013]> create user 'erich' IDENTIFIED BY 'SEKRIT PASSWORD';

... और नए हैश पर एक नज़र:

    [172.16.2.222:mysql Thu Nov  7 16:14:26 2013]> select * from user order by User;
    +-----------+--------------+-------------------------------------------+--------
    | Host      | User         | Password                                  | Select_
    +-----------+--------------+-------------------------------------------+--------
    | localhost | someguy      | 3d9505dd323e53f1                          | Y      
    | %         | someotherguy | 79b3df3b004bb855                          | Y      
    | %         | erich        | *D2589EF6B59146801234567897BB190123456789 | N      
    | %         | anotheroldguy| 60577e0d77b9212b                          | Y      

ध्यान दें कि मेरा हैश दूसरों की तुलना में कितना बड़ा है!

बस साफ होने के लिए, मैं old_passwordsवापस सेट OFF। यह शायद व्यर्थ था, क्योंकि मैं नहीं सोच सकता कि कोई भी पुराने पासवर्ड का उपयोग करके नए उपयोगकर्ता क्यों बनाना चाहेगा, लेकिन कौन जानता है।

वैसे भी: यह मेरे लिए इसे हल किया।


क्या यह ओपी के सवाल को हल करता है? यदि नहीं, तो शायद यह अपना प्रश्न और उत्तर होना चाहिए।
मैक्स वर्नोन

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