का उपयोग कर MySQL 4.1+ से कनेक्ट नहीं हो सका, मुझे पता है कि समान प्रश्नों का एक टन है, वास्तव में मैंने उनमें से सभी (9) पढ़े हैं।PHP 5.4 पीडीओ पुराने असुरक्षित प्रमाणीकरण
हालांकि, उनमें से कोई भी मेरी समस्या का समाधान नहीं करता है।
मेरे पास साझा-होस्टिंग पैकेज (न्यूनतम) है। मेरे पैकेज में क्या शामिल है डोमेन नाम है, और एक अलग आईपी पता है जहां MySQL सर्वर होस्ट किया गया है। विकास के लिए, मैं PHP 5.4 के विकास सर्वर के साथ http://localhost/
का उपयोग कर रहा हूं, और मैं अपने होस्टिंग पैकेज में प्राप्त MySQL सर्वर का उपयोग कर रहा हूं।
समस्या केवल मेरे पीसी पर उत्पन्न होती है, क्योंकि मैंने PHP 5.4 स्थापित किया है, लेकिन मेरे वेब होस्ट ने PHP 5.2.17 स्थापित किया है और अपग्रेड नहीं करेगा। MySQL सर्वर MySQL 5.1.50 पर है।
सौभाग्य से, phpMyAdmin में एक अंतर्निहित "पासवर्ड बदलें" सुविधा है।
वहाँ एक पासवर्ड बदलने के लिए phpMyAdmin में दो हैशिंग विकल्प हैं:
- MySQL 4.1+
- MySQL 4.0 संगत
मैं MySQL 4.1+ विकल्प के साथ पासवर्ड बदल दिया है, और यह पुष्टि की कि अद्यतन सफल रहा था।
प्रोफ़ाइल अद्यतन कर दी गई है।
SET PASSWORD = PASSWORD('***')
हालांकि, जब मैं इस क्वेरी निष्पादित:
1 1 16
और इसलिए समस्या:
SELECT @@global.old_passwords, @@session.old_passwords, Length(PASSWORD('abc'));
यह मेरे पासवर्ड लंबाई बताता है अभी भी 16. आउटपुट है बनी हुई है।
डेटाबेस से कनेक्ट नहीं हो सका। SQLSTATE [HY000] [2000] mysqlnd पुराने असुरक्षित प्रमाणीकरण का उपयोग कर MySQL 4.1+ से कनेक्ट नहीं हो सकता है। SET PASSWORD = PASSWORD ('your_existing_password') आदेश के साथ अपना पासवर्ड रीसेट करने के लिए कृपया एक व्यवस्थापन टूल का उपयोग करें। यह mysql.user में एक नया, और अधिक सुरक्षित, हैश मान संग्रहीत करेगा। इस प्रयोक्ता या उससे पहले पीएचपी 5.2 द्वारा निष्पादित अन्य लिपियों में प्रयोग किया जाता है, तो आप
मैं भी इन प्रश्नों करने की कोशिश की है, तो आपके my.cnf फ़ाइल से पुराने पासवर्ड झंडा दूर करने के लिए आवश्यकता हो सकती है, जब साथ में लॉग इन phpMyAdmin में डीबीओ उपयोगकर्ता:
डाटाबेस मालिक
आप एक नया डेटाबेस बनाते हैं, y:SET SESSION old_passwords=0; [phpMyAdmin reloads to the home screen, but the value remains = 1] SET GLOBAL old_passwords = 0; #1227 - Access denied; you need the SUPER privilege for this operation FLUSH PRIVILEGES; #1227 - Access denied; you need the RELOAD privilege for this operation
यह वही है डीबीओ उपयोगकर्ता की स्थापना के लिए webhost के मेनू में कहा गया है के विपरीत है कहां डेटाबेस डेटाबेस (डीबीओ) उपयोगकर्ता निर्दिष्ट करने की आवश्यकता है, जिसमें
डेटाबेस के लिए पूर्ण व्यवस्थापक पहुंच होगी।
क्या मुझे ऐसा कुछ है जो मुझे अपने वेबहोस्ट के साथ लेना है? या इसे मेरे डीबीओ उपयोगकर्ता द्वारा हल किया जा सकता है? अन्यथा यह PHP में बाईपास किया जा सकता है? (चूंकि यह PHP 5.2.17 के साथ काम करता है लेकिन PHP 5.4 नहीं)
वे PHP 5.2.17 (2011-01-06) और MySQL 5.1.50 (2010-08-03) पर फंस गए हैं और अपग्रेड नहीं करेंगे? मैं कहूंगा कि एक नए मेजबान में जाएं। लेकिन इसके बावजूद, आपको हमेशा इस तरह की समस्या से बचने के लिए, उसी संस्करण के साथ स्थानीय रूप से विकसित और परीक्षण करना चाहिए। –