ERROR 1044 (42000): डेटाबेस 'db' के लिए उपयोगकर्ता के '@' 'लोकलहोस्ट' के लिए प्रवेश निषेध।


164

मैं MySQL में क्वेरी लिखना शुरू करना चाहता हूं।

show grants दिखाता है:

+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+

मेरे पास कोई उपयोगकर्ता-आईडी नहीं है, लेकिन जब मैं एक उपयोगकर्ता बनाना चाहता हूं मेरे पास निजीकरण नहीं है, तो मुझे यह भी पता नहीं है कि मेरे पास एक उपयोगकर्ता नहीं होने पर भी विशेषाधिकार कैसे बनाते हैं!

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr
ivilege(s) for this operation

मैंने रूट के रूप में साइन करने की कोशिश की:

mysql> mysql -u root -p;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
 -u root -p' at line 1
mysql> mysql -u root -p root;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
 -u root -p root' at line 1

3
आपको अनुमति वाले उपयोगकर्ता के रूप में लॉग इन करना होगा। rootजब आप MySQL स्थापित करते हैं तो कम से कम बनाया जाना चाहिए था।
अपमानजनक

स्थापना के दौरान यह मुझे पासवर्ड सेट करने के लिए कहता है और मैं इसे रूट करने के लिए सेट करता हूं कि अब मैं क्या कर सकता हूं?
निकोल

9
आपको रनिंग के रूप में लॉग इन करना होगा mysql -u root -p। तब आपके पास डेटाबेस सर्वर पर पूर्ण अनुमति होगी, और आप अन्य उपयोगकर्ता बना सकते हैं।
अपमानजनक

जब आप कमांड लाइन का उपयोग करके लॉग इन करते हैं, तो रूट के रूप में लॉग इन करने के लिए निम्न कार्य करें: mysql -u root -p
ट्रैविस

1
@ मिंकपार्सा: नहीं, आप 'mysql' की बजाय शेल प्रॉम्प्ट से चलेंगे, mysql प्रॉम्प्ट पर नहीं।
व्युत्पन्न

जवाबों:


219

नहीं, आपको mysql -u root -pbash में चलना चाहिए , MySQL कमांड-लाइन पर नहीं। आप mysql में हैं, तो आप टाइपिंग द्वारा बाहर निकल सकते हैं बाहर निकलें


मैं कैसे मार सकता हूँ? मुझे mysql स्थापित करने में समस्या थी, यहाँ देखें superuser.com/questions/377679/…। मैं अभी इसे कमांड लाइन में जानता हूँ
निकोल

6
mysql से बाहर निकलने के लिए '
Skip

23
पासवर्ड डिफ़ॉल्ट रूप से FYI करें खाली है
bigpotato

अगर मैं विंडोज़ का उपयोग कर रहा हूँ तो क्या होगा?
PHPFan

बाहर निकलना या छोड़ना मेरे लिए काम नहीं कर रहा है, कृपया दूसरा रास्ता प्रदान करें। मैं विंडोज़ 10 पर हूं
मेटिन डाग्सेलर

46

आपको अपने MySQL डेटाबेस के लिए रूट खाता सेट करना पड़ सकता है:

टर्मिनल प्रकार में:

mysqladmin -u root password 'root password goes here'

और फिर MySQL ग्राहक को आमंत्रित करने के लिए:

mysql -h localhost -u root -p

1
इसने मेरे लिए काम किया, यह शुरुआत में ठीक काम कर रहा था और फिर एक दिन अचानक काम करना बंद कर दिया। किसी भी विचार, यह पहली जगह में क्यों होता है?
मू m

@soleshoe im त्रुटि हो रही है: sudo: mysqladmin: आदेश नहीं मिला कृपया मेरी मदद करो मैं क्या कर सकता हूँ ?? mysql सिस्टम वरीयता में चल रहा है।
हितार्थ

29

मुझे एक अलग समस्या के कारण यहाँ लाया गया था। जब भी मैंने लॉगिन करने की कोशिश की, मुझे वह संदेश मिला क्योंकि सही तरीके से प्रमाणित करने के बजाय मैंने अनाम उपयोगकर्ता के रूप में लॉग इन किया। मेरी समस्या का हल था:

यह देखने के लिए कि आप कौन से उपयोगकर्ता हैं और आपके पास किसकी अनुमति है:

select user(), current_user();

Pesky अनाम उपयोगकर्ता को हटाने के लिए:

drop user ''@'localhost';

1
इससे मेरे लिए समस्या हल हो गई, भले ही मैं "mysql -u उपयोगकर्ता नाम -p" का उपयोग कर रहा था। बहुत अजीब: उपयोगकर्ता () मेरा उपयोगकर्ता नाम था, लेकिन current_user () लोकलहोस्ट था ... न जाने क्यों?
एथनपिल

2
@Leftteris हाय .. im यह त्रुटि हो रही है: प्रवेश निषेध; इस ऑपरेशन के लिए आपको (कम से कम एक) क्रिएट USER विशेषाधिकार की आवश्यकता होती है, जब मैं उपयोगकर्ता को '' @ 'लोकलहोस्ट' छोड़ने की कोशिश करता हूं;
हितार्थ

15

यह उपयोगकर्ता की अनुमति के साथ कुछ करना है। उचित अनुदान देने से यह समस्या दूर हो जाएगी।

चरण [1]: टर्मिनल खोलें और इस कमांड को चलाएं

$ mysql -uroot -p

आउटपुट [1]: यह आपको नीचे दिखाए गए mysql प्रॉम्प्ट देना चाहिए

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

चरण 2]:

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';
mysql> grant all privileges on *.* to 'parsa'@'localhost';

वाक्य - विन्यास:

mysql> grant all privileges on `database_name`.`table_name` to 'user_name'@'hostname';

ध्यान दें:

  • होस्टनाम आईपी एड्रेस, लोकलहोस्ट, 127.0.0.1 हो सकता है
  • In database_name/ table_name, * का अर्थ है सभी डेटाबेस
  • में hostname, निर्दिष्ट करने के लिए सभी मेजबानों का उपयोग '%'

चरण [3]: वर्तमान mysql प्रॉम्प्ट से या तो दर्ज quit/ exitकमांड या प्रेस करके बाहर निकलें Ctrl+D

चरण [४]: अपने नए उपयोगकर्ता को लॉगिन करें

$ mysql -uparsa -pyour_password

चरण [५]: डेटाबेस बनाएँ

mysql> create database `database_name`;

जब मुझे CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';वहाँ त्रुटि मिलती है: ERROR 1227 (42000): प्रवेश निषेध; आपको इस ऑपरेशन के लिए क्रिएट USER विशेषाधिकार (कम से कम एक) की आवश्यकता है
विमान

क्या आपने रूट यूजर का उपयोग करके mysql क्लाइंट में लॉग इन किया है
theBuzzyCoder

9

आप पूर्ण लॉगिन कमांड आज़माना चाहते हैं:

mysql -h host -u root -p 

जहां मेजबान होगा 127.0.0.1

केवल यह सुनिश्चित करने के लिए कि सहयोग मौजूद है।

उपयोग mysql -u root -pकरने से मुझे बहुत सारे डेटाबेस खोज करने की अनुमति मिलती है, लेकिन पथ सेटिंग के कारण किसी भी डेटाबेस निर्माण से इनकार कर देता है।


6

सबसे पहले, यदि आप कमांड लाइन से अपरिचित हैं, तो अपने वेबब्रोज़र से phpmyadmin का उपयोग करने का प्रयास करें। यह सुनिश्चित करेगा कि आपने वास्तव में एक mysql डेटाबेस और उपयोगकर्ता नाम बनाया है।

यह है कि आप कमांड लाइन (बैश) से कैसे कनेक्ट होते हैं:

mysql -h hostname -u username -p database_name

उदाहरण के लिए:

fabio@crunchbang ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb

1
-pपासवर्ड के लिए है और आप इसका उपयोग डेटाबेस नाम को पारित करने के लिए कर रहे हैं। पासवर्ड के लिए भी स्पेस बी / डब्ल्यू और वास्तविक पासवर्ड नहीं होना चाहिए-p-Dकिसी विशिष्ट डेटाबेस से कनेक्ट करने के लिए उपयोग करें ।
sv।

5

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

अब MySQLनिम्नलिखित कमांड का उपयोग करके शुरू करें :

sudo mysql -u root -p

यदि आपका उपयोगकर्ता नाम रूट के अलावा कुछ है, तो अपने उपयोगकर्ता नाम के साथ उपरोक्त कमांड में 'रूट' बदलें:

sudo mysql -u <your-user-name> -p

यह तब आपसे MySQLखाता / पासवर्ड पूछेगा , और आपकी MySQLपहुँच विशेषाधिकार समस्या नहीं दिखाएगी।


पासवर्ड
डालने के

यह "sudo:" नहीं होना चाहिए, यह "sudo" होना चाहिए ... यदि यह एक टाइपो नहीं है, तो मुझे लगता है कि यह मुद्दा है।
क्षितिज मित्तल

2

@ नाइपरसा ... आपके पास 2 मुद्दे हैं:

1)। mysql -uroot -p MySQL कमांड-लाइन में नहीं, बैश में टाइप किया जाना चाहिए (आपके टर्मिनल के रूप में भी जाना जाता है)। आप इस त्रुटि को टाइप करके ठीक करें

exit

अपने MySQL कमांड लाइन में। अब आप अपने बैश / टर्मिनल कमांड-लाइन में वापस आ गए हैं।

2)। आपके पास एक सिंटैक्स त्रुटि है:

mysql -uroot -p; 

-p के सामने अर्धविराम जाने की जरूरत है। सही सिंटैक्स है:

mysql -uroot -p

अपने बैश कमांडलाइन में सही सिंटैक्स टाइप करें। यदि आपके पास एक सेट है तो एक पासवर्ड दर्ज करें; और सिर्फ एंटर बटन दबाएं। आपको एक प्रतिक्रिया मिलनी चाहिए जो इसके समान है: यहां छवि विवरण दर्ज करें

उम्मीद है की यह मदद करेगा!


नमस्ते, मैं इस सराहनीय आग के बाद बुरी तरह से abow स्क्रीन मिल गया। / usr / local / mysql / bin / mysql लेकिन उसके बाद जब मैं "CREAT DATABASE पुस्तकें" का उपयोग करके डेटाबेस बनाने का प्रयास करता हूं, तो मुझे त्रुटि हो रही है: ERROR 1044 (42000): Access ने उपयोगकर्ता के लिए '@' लोकलहोस्ट 'डेटाबेस' से इनकार कर दिया। किताबें 'कृपया मेरी मदद करें
हितार्थ

0

अधिकांश डेवलपर्स सर्वर में लॉग-इन करते हैं (मुझे लगता है कि आपके पास mysql डेटाबेस के लिए यूजर-नेम और पासवर्ड है) तो बैश से वे mysql> promptफिर नीचे दिए गए कमांड का उपयोग करते हैं (जो काम नहीं करता है

mysql -h localhost -u root -p

क्या करने की आवश्यकता है, बैश प्रॉम्प्ट में उपरोक्त कमांड का उपयोग करें -> ऐसा करने पर यह पासवर्ड के लिए पूछेगा यदि दिया गया तो यह सीधे mysql प्रॉम्प्ट पर ले जाएगा:

फिर डेटाबेस, टेबल एक-एक करके बनाए जा सकते हैं

मैंने अनुभव साझा करते हुए इसी तरह के गतिरोध का सामना किया


0

मेरे पास उपर्युक्त उत्तरों के अनुसार कमांड सही थी, जो मैं वर्कबेंच पर छूट गया था, जहां हम उपयोगकर्ता के लिए 'होस्ट से सीमा कनेक्टिविटी' का उल्लेख करते हैं, यह "%" के लिए डिफॉल्ट करता है - इसे "लोकलहोस्ट" में बदल दें और यह इसके बाद ठीक से कनेक्ट हो जाता है!

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