2015-10-22 8 views
12

मुझे पता है कि मेरे जैसी ही चिंता के साथ बहुत सारे प्रश्न उठाए गए हैं, लेकिन मुझे आशा है कि आप इसके लिए एक और समाधान ढूंढने में मेरी सहायता कर सकते हैं।पुराने असुरक्षित प्रमाणीकरण का उपयोग करके MySQL 4.1+ से कनेक्ट नहीं हो सका

हम Symfony 2.5.10 उपयोग कर रहे हैं, पीएचपी 5.4.44 और MySQL हमारे परियोजना के लिए 4.1.20

SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

हम पहले से ही स्थापित करने की कोशिश की:

जब भी मैं प्रणाली या किसी भी कार्य है कि डेटाबेस से कनेक्ट चिंताओं के लिए लॉग इन करने का प्रयास (जैसे FOS आदेश का उपयोग कर नया उपयोगकर्ता जोड़ना), मैं यह त्रुटि प्राप्त old_passwordsmy.cnf से 0 में, mysql को पुनरारंभ करें, mysql उपयोगकर्ता के लिए एक नया पासवर्ड सेट करें और फिर से mysql को पुनरारंभ करें लेकिन फिर भी वही। और जब भी हम क्वेरी विंडो में यह चलाएँ:

SELECT user, Length(Password) FROM mysql.user; 

यह अभी भी उपयोगकर्ता हम प्रयोग कर रहे हैं के पासवर्ड की लंबाई के रूप में 16 को दर्शाता है। और MySQL सर्वर चर और सेटिंग्स की जांच करते समय, old passwords पर है (भले ही हम पहले से ही my.cnf में old_password 0 को सेट करते हैं)।

इसके साथ क्या गलत हो सकता है? हम सच में आपकी मदद की सराहना करेंगे।

अद्यतन: इस बीच, हम डेटाबेस तक पहुंचने में सक्षम होने के लिए डीबी उपयोगकर्ता का पासवर्ड हटा देते हैं। लेकिन मैं अभी भी अन्य समाधानों की तलाश कर रहा हूं क्योंकि नेट पर मिले उन समाधानों (जैसे my12nf में old_passwords=1 को हटाने या टिप्पणी करने, पुराने_पासवर्ड को 0 पर सेट करने और फिर नया पासवर्ड सेट करने के बाद) मेरे लिए काम नहीं किया।

एक और अद्यतन: सामान्य रूप से, इस समस्या के लिए समाधान mysql में बंद old_passwords की स्थापना होगी, लेकिन फिर, PHP documentation में उल्लिखित,

the new mysqlnd library does not read mysql configuration files (my.cnf/my.ini).

तो इसका मतलब यह है कि में 0 में करने के लिए old_passwords की स्थापना my.cnf कोई उपयोग नहीं है? मुझे अभी भी इस समस्या का समाधान नहीं पता है।

क्या हमें किसी भी प्लेटफ़ॉर्म में अपग्रेड की आवश्यकता है? मदद के लिए अग्रिम धन्यवाद।

+0

संभव का डुप्लिकेट http://stackoverflow.com/questions/1575807/cannot-connect-to-mysql-4-1-using- पुराना प्रमाणीकरण – Stafox

+0

क्या आपने 'फ्लश प्राइवेट' निष्पादित किया था? – Stafox

+0

कृपया देखें http://stackoverflow.com/questions/1575807/cannot-connect-to-mysql-4-1-using-old- प्रमाणीकरण –

उत्तर

2

समाधान तुम सिर्फ फिर से पासवर्ड सेट और निर्दिष्ट है कि यह नए प्रारूप में सहेजने की आवश्यकता के अनुसार इस समाधान

http://laravel.io/forum/04-16-2014-solving-mysqlnd-cannot-connect-to-mysql-41

का प्रयास करें।

mysql> SET @@session.old_passwords = 0; 
Query OK, 0 rows affected (0.00 sec) 
SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('existingpass'); 
Query OK, 1 rows affected (0.00 sec); 
+0

मैंने कोशिश की यह लेकिन यह अभी भी एक ही आउटपुट है .. 'SQLSTATE [HY000] [2000] mysqlnd पुराने असुरक्षित प्रमाणीकरण का उपयोग कर MySQL 4.1+ से कनेक्ट नहीं हो सकता है ...' – User122113

3

"सेट पासवर्ड" MySQL सर्वर 5.7.6 में बहिष्कृत है।

वाक्य रचना

SET PASSWORD [FOR user] = password_option 
password_option: { 
    PASSWORD('auth_string') 
    | OLD_PASSWORD('auth_string') 
    | 'hash_string' 
} 

वाक्य रचना सर्वर 5.7 के लिए अपनाई जाने वाली 5.7.6 नीचे सर्वर के लिए अपनाई जाने वाली है।6 और उन्नत संस्करण है,

SET PASSWORD [FOR user] = password_option 
password_option: { 
    PASSWORD('auth_string') 
    | 'auth_string' 
} 

इसके अलावा refer->http://dev.mysql.com/doc/refman/5.7/en/set-password.html

+0

वे MySQL 4.1.20 का उपयोग MySQL 5.7.6 नहीं कर रहे हैं, इसलिए इसे चाहिए काम;) – tobiinformatik

+0

मुझे एसक्यूएल वाक्यविन्यास के साथ त्रुटि मिल रही है। :( – User122113

संबंधित मुद्दे