Ubuntu 15.10 mysql त्रुटि 1524 - unix_socket


51

उबंटू 15.10 पर, एक बिंदु पर (शायद मरदब की स्थापना और हटाने के बाद) mysql संचालित करने में असमर्थ था। कार्य ऊपर हैं, लेकिन सर्वर डाउन है।

आदेश पर:

mysql -u root -p

सिस्टम उत्तर की तरह:

mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"

लॉग इन करने का कोई तरीका नहीं, कोई प्लगइन नहीं मिला, कॉन्फ़िगरेशन फ़ाइलों में कोई त्रुटि नहीं है (सभी डिफ़ॉल्ट रूप से)।

नियंत्रण में वापस कैसे प्राप्त करें, और mysql सर्वर चलाएं?


मैं इस विशेष त्रुटि से परिचित नहीं हूँ, लेकिन इस चर्चा को देखें: lists.launchpad.net/maria-developers/msg08177.html
Jos

@ जोस: चर्चा, शायद इसी तरह की स्थिति के लिए, एक समाधान की पेशकश नहीं करता है। मैंने बहुत कुछ जाना है, लेकिन मुझे पूरा समाधान नहीं मिला है। वैसे भी, मैंने एक कामकाजी उत्तर पोस्ट किया है।
हाइड्रा स्ट्रैटेस्टर

त्रुटि संदेश के कारण के बारे में: unix_socket प्लगइन MariaDB (MySQL नहीं) का हिस्सा है और इसे काम करने के लिए अनुदान के लिए लोड करने की आवश्यकता है: mariadb.com/kb/en/library/authentication-plugin-unix-uncket
जॉनीजेड

जवाबों:


94

"Unix_socket" को mysql ऑथेंटिकेशन प्रक्रिया द्वारा बुलाया गया है (हो सकता है कि यह डेटाबेस के आंशिक माइग्रेशन से संबंधित हो, अब हटा दिया गया है)। सभी सामान वापस पाने के लिए काम करना सु जाना:

sudo su

फिर अनुसरण करें:

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -uroot

यह mysql को पूरी तरह से रोक देगा, उपयोगकर्ता प्रमाणीकरण (कोई पासवर्ड की आवश्यकता नहीं) को बायपास करेगा और mysql को उपयोगकर्ता "रूट" से कनेक्ट करेगा।

अब, mysql कंसोल में, mysql एडमिनिस्ट्रेटिव db का उपयोग करें:

use mysql;

रूट पासवर्ड को mynewpassword पर रीसेट करने के लिए (इसे अपनी इच्छा पर बदलें), बस इसके बारे में सुनिश्चित करें:

update user set password=PASSWORD("mynewpassword") where User='root';

और यह एक प्रमाणीकरण विधि को अधिलेखित कर देगा, एक सामान्य और काम कर रहे पासवर्ड विधि को पुनर्स्थापित करते हुए, unix_socket अनुरोध (और बाकी सब कुछ) को हटा दें:

update user set plugin="mysql_native_password";

Mysql कंसोल से बाहर निकलें:

quit;

Mysql से जुड़ी हर चीज़ को रोकें और शुरू करें:

/etc/init.d/mysql stop
kill -9 $(pgrep mysql)
/etc/init.d/mysql start

exitर मोड के लिए मत भूलना ।

अब mySQL सर्वर ऊपर और चल रहा है। आप इसे रूट से लॉगिन कर सकते हैं:

mysql -u root -p

या जो भी आप चाहें। पासवर्ड का उपयोग ऑपरेटिव है।

बस।


मेरे mysqld_safeपास कोई विकल्प नहीं है .. जो --skip-grant-tablesदेता है?
heemayl 13

मैं mysqld 5.6.27-0ubuntu1 पर हूं। आपको उस विकल्प को देखना चाहिए:mysqld --verbose --help
हाइड्रा स्ट्रैटेस्टर

2
यह मुझे मिल रहा है। इसके बजाय कुछ मतभेदों के साथ, mysqld_safeजिन्होंने तर्क की शिकायत की --स्कैप-अनुदान-टेबल मौजूद नहीं थे जिनका मैंने उपयोग किया था mysqld। हालाँकि यह शिकायत करता रहा कि यह सॉकेट फ़ाइलों को नहीं बना सकता है /var/run/mysqld/। मैंने एपरमोर कॉन्फिग को चेक किया और इसकी उचित अनुमति थी। यह मैं ही था ठीक करने के लिए mkdir /var/run/mysqld/और फिर पूरी तरह से खुला नियंत्रण दिया जाएगा: chmod -R 777 /var/run/mysqld/। तब मैं अंत में डेमॉन शुरू कर सकता था और प्लगइन को 'mysql_native_password' में बदल सकता था।
दिनमान

1
मेरी उपयोगकर्ता तालिका में कोई पासवर्ड फ़ील्ड नहीं है (Ubuntu 16 mysql 5.7.13)। मैंने इस SQL ​​का उपयोग किया: UPDATE mysql.user SET प्रमाणीकरण_string = PASSWORD ('foobar123'), password_expired = 'N' WHERE उपयोगकर्ता = 'जड़' और होस्ट = 'localhost';
एन्थोनी स्कैफे

यहाँ निर्देश संक्षिप्त है और इस मुद्दे को हल करने में मेरी मदद की। धन्यवाद!
एडुआर्डो बी।

11

यहाँ ऐसा करने के मेरे कदम हैं:

/etc/init.d/mysql stop
sudo killall mysqld_safe
sudo killall mysqld
sudo mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
update user set password=PASSWORD("mynewpassword") where User='root';
update user set plugin="mysql_native_password";
quit;
/etc/init.d/mysql stop
sudo kill -9 $(pgrep mysql)
/etc/init.d/mysql start

1
अब "mysql -u root" के बाद मुझे मिलता है: ERROR 1524 (HY000): प्लगिन 'रूट' लोड नहीं है
dxvargas

ऐसा लगता है कि आपने दो अद्यतन प्रश्नों को मिलाया है। क्या आपने दुर्घटना पर प्लगइन = "रूट" सेट किया है?
एडम प्लोचर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.