MySQL एक्सेस ने उपयोगकर्ता के 'रूट' @ 'लोकलहोस्ट' के लिए इनकार कर दिया


24

मेरे सर्वर में, हर बार मैं MySQL तक पहुँचने की कोशिश करता हूँ मुझे त्रुटि मिलती है:

उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: NO) के लिए प्रवेश से वंचित

जब मैं कोशिश करता mysqladmin -u root -p passwordहूँ मुझे मिलता है

उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: YES) के लिए प्रवेश से वंचित

मैं अपने Ubuntu सर्वर 12.04 में MySQL का उपयोग कैसे कर सकता हूं?


1
कमांड लाइन पर एक पैरामीटर के रूप में अपना पासवर्ड टाइप करने से बचने की कोशिश करें, अन्य उपयोगकर्ता इसे प्रक्रिया लिस्टिंग के माध्यम से पा सकते हैं। कार्यक्रम में इसे टाइप करने या कुंजी का उपयोग करने के लिए बहुत बेहतर है
अमियास

वाक्यविन्यास -p passwordगलत है, यह होना चाहिए -ppasswordलेकिन अनुशंसित नहीं है। अधिक जानकारी: stackoverflow.com/questions/5131931/…
मेलेबियस

इस त्रुटि के संभावित कारणों के लिए इस पृष्ठ की जाँच करें और इस त्रुटि को ठीक करने के लिए समाधान। rathishkumar.in/2017/04/… । यह आपकी मदद कर सकता है।
रथदिषा २०

जवाबों:


12

यदि आप n लोकलहोस्ट चल रहे हैं, तो बस टर्मिनल में नीचे कमांड टाइप करें:

mysql -u root -p

यदि आप बाहरी सर्वर का उपयोग कर रहे हैं, तो होस्ट आईपी (xxx.xxx.xxx.xxx) भी दर्ज करें:

mysql -hxxx.xxx.xxx.xxx -uroot -p

आपको अपने पासवर्ड के लिए संकेत दिया जाएगा, इसे दर्ज करें और आप अपने MySQL प्रॉम्प्ट तक पहुंच सकेंगे।

आप इस उत्तर को अपने MySQL पासवर्ड को रीसेट करने के तरीके पर भी देख सकते हैं।


मुझे मिला, लेकिन मुझे अभी भी नहीं पता है कि पासवर्ड कैसे बदलना है या चुना है
user253867

मेरे द्वारा लिंक किए गए उत्तर में, आपको 5.xउस MySQL सर्वर के संस्करण के साथ अंत में प्रतिस्थापित करना होगा जिसका आप उपयोग कर रहे हैं। मैं 5.5 का उपयोग कर रहा हूं, इसलिए मेरी कमांड होगीsudo dpkg-reconfigure mysql-server-5.5
पार्टो

9
इसलिए, समस्या यह है कि ओपी देखता है Access denied for user 'root'@'localhost'। आप कॉल करने का सुझाव देते हैं mysql -u root -p। इस आदेश का परिणाम है: Access denied for user 'root'@'localhost'
phil294

5
sudo mysql -u root -pमेरे लिए काम करता है, लेकिन mysql -u root -pनहीं है
इवान काले

7

जब मैं अपडेट करता हूं तो मुझे वही लक्षण मिलते हैं, लेकिन मेरे लिए यह फिक्स (mysql को मारने के बाद और साथ में --स्काइप-ग्रांट-टेबल को फिर से शुरू करना) निष्पादित करना है

update mysql.user set plugin = '';

अद्यतन प्रक्रिया इस कॉलम को "unix_socket" पर सेट करना पसंद करती है। मुझे नहीं पता कि क्या हासिल करना चाहिए, लेकिन मेरे लिए यह सब कुछ तोड़ देता है।


यह सब कुछ कोशिश करने के बाद, Ubuntu 16 LTS पर मेरी समस्या को हल करता है .. अनुमतियाँ, समूह उपयोगकर्ता। Thanx।
onalbi

हां, मैंने कड़ी स्क्रिप्ट को चलाया था और इसने प्लगइन को बदल दिया mysql_socketथा इसलिए जो भी मैं उपयोग करने के लिए तैयार PASSWORD('xxxxxx')था, वह काम नहीं कर रहा था।
TheVillageIdiot

4

Mysql के लिए एक पासवर्ड सेट करें

sudo dpkg-reconfigure mysql-server-5.x

अब टर्मिनल खोलें और टाइप करें

mysql -uroot -p

पासवर्ड दें और एंटर दबाएं


4

मैंने इसके साथ अपनी समस्या हल की:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server

बेहद जिम्मेदार बनो। इस समाधान के साथ, आप MySql सर्वर और उसके सभी डेटा को निकाल रहे हैं।


मेरे लिए काम नहीं करता है।
इवान ब्लैक

!! बेहद जिम्मेदार बनो। इस समाधान के साथ आप MySql सर्वर और इसके सभी डेटा को निकाल रहे हैं।
मटीस जुर्गेलिस

4

उलरिच मेटाजर के समान, मेरी मशीन को उबंटू 16.04 और मैसूर-सर्वर-5.7 में अपग्रेड करने के बाद, मैं रूट के साथ लॉग इन नहीं कर सका क्योंकि pluginकॉलम बदल गया था।

मेरी समस्या को sudo dpkg-reconfigure mysql-server-5.7+ हटाने + शुद्ध करने + सफाई के साथ हल नहीं किया गया था ।

मुझे mysql सेवा को बंद करना पड़ा:

# sudo service mysql stop

फिर --no-grant-tablesविकल्प के साथ mysql डेमन को पुनः आरंभ करें :

# sudo mysqld_safe --no-grant-tables &

फिर दूसरे टर्मिनल में, कमांड के साथ mysql कंसोल (जिसे अब प्रमाणीकरण की आवश्यकता नहीं है) दर्ज करें mysql, और SQL UPDATE के माध्यम से पासवर्ड और प्लगइन कॉलम अपडेट करें:

UPDATE mysql.user 
  SET authentication_string=PASSWORD(''), 
      plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';

अंत में, mysqld_safeकमांड को मारें , mysql सेवा को पुनरारंभ करें और सामान्य रूप से mysql से कनेक्ट करें:

# sudo service mysql start
# mysql

2

Ubuntu 14.4LTS से 16.4LTS में अपग्रेड करने के बाद mysql रूट उपयोगकर्ता mysql उपयोगकर्ता तालिका के प्लगइन कॉलम में गलत प्रविष्टि के कारण अधिक लॉगिन नहीं कर सका। अपग्रेड ने रूट @ localhost उपयोगकर्ता के लिए ऑरिजनल_ऑरकेट पर रूट मान सेट किया है, लेकिन सही प्रविष्टि mysql_native_password होनी चाहिए , यदि आपने पहले mysql नेटिव पासवर्ड एन्क्रिप्शन का उपयोग किया था।


यह वही है जो मेरे लिए काम किया है, और समस्या की जड़ है। "समस्या" को ठीक करने के लिए स्थापना रद्द करना और पुन: स्थापित करना कुछ भी नहीं करेगा।
स्टीवफ्रॉम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.