2009-11-10 14 views
30

मैं हमारे डेटाबेस से बाहर मेरी जड़ उपयोगकर्ता बंद कर दिया। मुझे रूट विशेषाधिकार में सभी विशेषाधिकार वापस प्राप्त करने की आवश्यकता है। मेरे पास मेरा पासवर्ड है और मैं MySQL में लॉग इन कर सकता हूं। लेकिन रूट उपयोगकर्ता के पास सभी विशेषाधिकार नहीं हैं।MySQL को --skip-grant-table के साथ कैसे प्रारंभ करें?

+2

superuser.com होना चाहिए – KB22

+2

कमांड: mysqld --skip-grant-table – User

+2

@macdonjo 'mysql --skip-grant-table' रिटर्न:' mysql: अज्ञात विकल्प '--skip-grant-table'' अगर यह इतना आसान था, मुझे नहीं लगता कि ओपी सवाल पूछेगा। – smilebomb

उत्तर

0

Mysql ऐसा करने के लिए कदम मैनुअल से एक कदम है:

Reset mysql root password

+12

कोई आदेश नहीं दिया गया है उस पृष्ठ में --skip-grant-table के साथ mysqld शुरू करने के लिए। मुझे 'कॉपी पेस्ट' चिकनीता के साथ अपने लेख पसंद हैं! :) –

+5

वह लेख है जिसका मैं अनुसरण करने की कोशिश कर रहा हूं - यह बिल्कुल नहीं कहता कि इसे कमांड विकल्प के साथ कैसे शुरू किया जाए। बस "MySQL को रोकें और इसे --skip-grant-table विकल्प के साथ पुनरारंभ करें।" – eselk

0

अगर यह एक खिड़कियों बॉक्स है, ऐसा करने का सरलतम बात, सर्वर को रोकने के लिए छोड़-अनुदान टेबल को जोड़ने के लिए है mysql विन्यास फाइल, और सर्वर को पुनरारंभ करें।

एक बार आप अपने अनुमति समस्याओं को ठीक करने के ऊपर दोहराने लेकिन छोड़-अनुदान टेबल विकल्प को हटा दें।

यदि आपको नहीं पता कि आपकी कॉन्फ़िगरेशन फ़ाइल कहां है, तो mysql में लॉग इन करें SHOW VARIABLES LIKE '%config%' और पंक्तियों में से एक आपको बताएगी कि आपकी कॉन्फ़िगरेशन फ़ाइल कहां है।

+0

मुझे नहीं पता कि कॉन्फ़िगरेशन फ़ाइल कहां है। – Steven

+0

मेरी अद्यतन पोस्ट देखें। लेकिन ईमानदारी से, अगर आपको यह समस्या हो रही है और आपको नहीं पता कि आपकी कॉन्फ़िगरेशन फ़ाइल कहां है, तो आपको किसी और को अनुभवी इसे ठीक करना चाहिए। जब तक कि यह केवल आपका व्यक्तिगत डेटाबेस नहीं है जिसे आप सीख रहे हैं, फिर आगे बढ़ें और जानें। :) – longneck

+0

त्रुटि एसक्यूएल क्वेरी: पर सभी प्रावधानों को अनुदान दें *। * अनुदान विकल्प के साथ * रूट '@' लोकहोस्ट 'MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; MySQL ने कहा: प्रलेखन # 1290 - MySQL सर्वर --skip-अनुदान टेबल विकल्प के साथ चल रहा है, तो यह इस बयान तुम देखो पर अमल नहीं कर सकते, मैं --skip-अनुदान के साथ MySQL करने के लिए पर लॉग इन किया है टेबल विकल्प। लेकिन जब मैंने सभी विशेषाधिकारों को मूल उपयोगकर्ता को वापस लाने का प्रयास किया, तो मैं असफल रहा। – Steven

27

मुझे इस प्रश्न के शीर्षक के समान समस्या थी, इसलिए इस सवाल पर किसी और को गुगल करें और विंडोज़ पर 'स्किप-ग्रांट-टेबल' मोड में MySQL को शुरू करना चाहते हैं, मैंने यही किया है।

सेवाएं प्रशासक उपकरण के माध्यम से MySQL सेवा बंद करो।

my.ini विन्यास फाइल को संशोधित (डिफ़ॉल्ट पथ संभालने)

C:\Program Files\MySQL\MySQL Server 5.5\my.ini 

या MySQL संस्करण> = 5,6

C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 

सर्वर खंड में के लिए, [mysqld] के तहत, निम्नलिखित जोड़ें रेखा:

skip-grant-tables 

इतना है कि आप

# SERVER SECTION 
# ---------------------------------------------------------------------- 
# 
# The following options will be read by the MySQL Server. Make sure that 
# you have installed the server correctly (see above) so it reads this 
# file. 
# 
[mysqld] 

skip-grant-tables 
सेवा फिर से शुरू

और आप एक पासवर्ड के बिना अपने डेटाबेस में लॉग इन करने में सक्षम होना चाहिए।

+3

my.ini फ़ाइल का स्थान 'C: \ ProgramData \ MySQL \ MySQL Server 5.6' पर नहीं है 'प्रोग्राम फ़ाइलें' फ़ोल्डर – Timeless

+0

धन्यवाद, अद्यतन उत्तर – tonycoupland

2

आप mysql 5.6 सर्वर का उपयोग और C:\Program Files\MySQL\MySQL Server 5.6\my.ini साथ समस्या है, तो:

आप C:\ProgramData\MySQL\MySQL Server 5.6\my.ini के पास जाना चाहिए।

आप skip-grant-tables जोड़ना चाहिए और फिर आप एक पासवर्ड की जरूरत नहीं है।

# SERVER SECTION 
# ---------------------------------------------------------------------- 
# 
# The following options will be read by the MySQL Server. Make sure that 
# you have installed the server correctly (see above) so it reads this 
# file. 
# 
# server_type=3 
[mysqld] 
skip-grant-tables 

नोट: के बाद आप skip-grant-tables पर अपने काम के साथ किया जाता है, तो आप C:\ProgramData\MySQL\MySQL Server 5.6\my.ini की अपनी फ़ाइल को पुनर्स्थापित करना चाहिए।

+0

लिनक्स फेडोरा उपयोगकर्ताओं के लिए, फ़ाइल my.cnf/etc/निर्देशिका के अंतर्गत होगी । उस फ़ाइल में skip-grant-table लाइन जोड़ें और "सेवा mysqld restart" कमांड द्वारा mysqld सेवा को पुनरारंभ करें। धन्यवाद –

2

आप तो Apple MacBook OSX पर चला रहे हैं:

  1. अपने MySQL सर्वर (यदि वह पहले से चल रहा है) बंद करो।
  2. अपनी MySQL कॉन्फ़िगरेशन फ़ाइल, my.cnf खोजें। (मेरे लिए इसे @ /Applications/XAMPP/xamppfiles/etc रखा गया था। यदि आप इसे नहीं ढूंढ पा रहे हैं तो आप केवल खोज सकते हैं)।
  3. किसी भी टेक्स्ट एडिटर में my.cnf फ़ाइल खोलें।
  4. (उद्धरण के बिना) [mysqld] अनुभाग के अंत में जोड़ें और फ़ाइल को सहेजें।
  5. अब अपना MySQL सर्वर शुरू करें। यह skip-grant-tables विकल्प से शुरू होगा।

अब आप जो चाहते हैं उसे करें !!

पीएस: my.cnf फ़ाइल से skip-grant-tables हटाएं, जब भी आप ऐसा करना चाहते हैं तो ELSE MySQL सर्वर हमेशा अनुदान के बिना चलाएगा।

12

पुन: ले MySQL में रूट के नियंत्रण खतरा: जोखिम भरा OPERATTION

  • प्रारंभ सत्र ssh (यदि संभव हो तो जड़ का उपयोग)।
  • मेरा.cnf फ़ाइल का उपयोग कर संपादित करें।

    sudo vi /etc/my.cnf

  • जोड़ें लाइन ब्लॉक mysqld करने के लिए। *

    छोड़-अनुदान टेबल

  • सहेजें और बाहर निकलें।

  • MySQL सेवा को पुनरारंभ करें।

    सेवा mysqld पुनः आरंभ

  • चेक सेवा स्थिति।

    सेवा mysql स्थिति

  • कनेक्ट mysql के लिए।

    mysql

  • मुख्य डेटाबेस का उपयोग करना।

    mysql का उपयोग करें;

  • उपयोगकर्ता रूट पासवर्ड को पुन: परिभाषित करें।

    अद्यतन उपयोगकर्ता SET authentication_string = पासवर्ड ('myNuevoPassword') जहां User = 'root';

  • फ़ाइल my.cnf संपादित करें।

    sudo vi /etc/my.cnf

  • मिटाएं लाइन।

    छोड़-अनुदान टेबल

  • सहेजें और बाहर निकलें।

  • MySQL सेवा को पुनरारंभ करें।

    सेवा mysqld पुनः आरंभ

  • चेक सेवा स्थिति।

    सेवा mysql स्थिति

  • कनेक्ट डेटाबेस के लिए।

  • प्रकार नया पासवर्ड -p

    mysql -u जड़ जब शीघ्र।

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

+0

यह मेरे लिए काम करता है .... धन्यवाद –

+0

'सेवा mysqld restart' गलत है -' सेवा mysql restart' सही है – fnc12

+0

MySQL 5.7 (उबंटू पर) के लिए .cnf फ़ाइल जिसे मैं संपादित करना था/etc/mysql पर स्थित था /mysql.conf.d –

2

निम्न आदेश का उपयोग (नोटिस "d"): mysqld --skip-grant-tables

0

संपादित my.ini फ़ाइल और छोड़-अनुदान टेबल जोड़ सकते हैं और अपने mysql सर्वर को पुनः आरंभ:

[mysqld] 
port= 3306 
socket = "C:/xampp/mysql/mysql.sock" 
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
datadir = "C:/xampp/mysql/data" 
pid_file = "mysql.pid" 
# enable-named-pipe 
key_buffer = 16M 
max_allowed_packet = 1M 
sort_buffer_size = 512K 
net_buffer_length = 8K 
read_buffer_size = 256K 
read_rnd_buffer_size = 512K 
myisam_sort_buffer_size = 8M 
log_error = "mysql_error.log" 
skip-grant-tables 
# Change here for bind listening 
# bind-address="127.0.0.1" 
# bind-address = ::1 
2

पर Linux सिस्टम आप निम्न कर सकते

चेक (अन्य ओएस के लिए समान होना चाहिए) अगर mysql प्रक्रिया चल रहा है:

sudo service mysql status 

हैं चलाने का तो प्रक्रिया को रोकने: (सुनिश्चित करें कि आप सब mysql उपकरण को बंद बनाओ)

sudo service mysql stop 

आप इस मुद्दे को तो रोक है निम्नलिखित है प्रक्रिया के लिए

खोजें हैं: ps aux | grep mysqld प्रक्रिया को मारने: kill -9 process_id

अब छोड़ अनुदान के साथ सुरक्षित मोड में mysql शुरू

sudo mysqld_safe --skip-grant-tables & 
संबंधित मुद्दे