MySQL: घातक त्रुटि: विशेषाधिकार तालिका नहीं खोल और बंद कर सकते हैं: तालिका 'mysql.host' मौजूद नहीं है [बंद]


9

अचानक मेरे स्थानीय MySQL 5.5 सर्वर ने मेरे Windows XP SP3 पर चलना बंद कर दिया।

मेरे पास WAMP Apache और WAMP MySQL भी स्थापित है, लेकिन WAMP MySQL नहीं चल रहा है। त्रुटि लॉग दिखाता है:

  • सर्वर शुरू नहीं कर सकते: TCP / IP पोर्ट पर बाइंड करें: ऐसी कोई फ़ाइल या निर्देशिका नहीं
  • क्या आपके पास पोर्ट पर पहले से मौजूद एक अन्य mysqld सर्वर है: 3306?

मैंने 3306 से 3307 तक पोर्ट बदलने की कोशिश की, लेकिन यह सेवा अभी भी शुरू नहीं होगी, त्रुटि देते हुए:

द इवेंट व्यूअर दिखाता है:

  • घातक त्रुटि: विशेषाधिकार तालिका नहीं खोल और बंद कर सकते हैं: तालिका 'mysql.host' मौजूद नहीं है
  • Mysql.plugin टेबल नहीं खोल सकते। कृपया इसे बनाने के लिए mysql_upgrade चलाएं।

यदि सर्वर चल रहा है, तो मैं केवल mysql_upgrade चला सकता हूं। यदि सेवा शुरू नहीं की जा सकती है तो मैं 'mysql.host' कैसे बना सकता हूं?

मैंने MySQL सर्वर को अनइंस्टॉल किया और इसे फिर से इंस्टॉल किया, और इंस्टॉलेशन के बाद कॉन्फ़िगर विज़ार्ड के दौरान, मुझे एक त्रुटि मिली: सेवा शुरू नहीं की जा सकी। त्रुटि: 0।

मैं यहां से कैसे आगे बढ़ूं?


स्टीव आप इसे विंडोज, बीएसडी, लिनक्स, ओएसएक्स, या किसी अन्य ओएस पर चला रहे हैं? यदि आप इसे विंडोज पर चला रहे हैं तो कुछ चरणों के लिए विवरण अलग होगा।
ऋक श्नाइडर

@ रिक श्नाइडर: रिक, मैं अपने विंडोज लैपटॉप पर MySQL चला रहा हूं। धन्यवाद।
स्टीव

जवाबों:


9

निम्न आदेश चलाएँ

mysql_install_db

BTW, यह आवश्यक है जब (कम से कम) लिनक्स सेंटोस पर एक इंस्टॉलेशन कर रहे हों। अन्यथा mysqld शुरू नहीं होगा। मैंने यह देखा जब मैंने भाग लियाsystemctl status mysqld.service 2015-02-20 15:41:07 15160 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
माइक एस

5

विंडोज़ पर शुरू करने से पहले mysql को इनिशियलाइज़ करें।

mysqld --initialize

काश मैं इसे एक से अधिक बार उखाड़ सकता। मैं इस सरल समाधान के लिए खोज रहा हूँ। धन्यवाद!
शियाविनी

1

पहली चीज़ जो आपको करने की ज़रूरत है, वह है इन कमांडों को चलाना:

use mysql
show tables;

कृपया अंतर नोट करें

MySQL 5.0 में mysql स्कीमा में 17 टेबल हैं

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

MySQL 5.1 में mysql स्कीमा में 23 टेबल हैं

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

MySQL 5.5 में mysql स्कीमा में 24 टेबल हैं

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

कृपया ध्यान दें कि MySQL 5.0 में mysql.plugin मौजूद नहीं है। यह बहुत ही प्रशंसनीय है कि आपने किसी तरह MySQL 5.0 को स्थापित किया और MySQL 5.5 के लिए महत्वपूर्ण तालिकाओं को गायब कर दिया।

यहाँ कुछ अच्छी खबर है। वहाँ कुछ तुम कोशिश कर सकते है।

इस उदाहरण के लिए

  • ServerA वह जगह है जहाँ आपका MySQL 5.5 डेटा रहता है
  • ServerB वह जगह है जहां आप एक अलग MySQL 5.5 वातावरण बनाएंगे

यहाँ आपके कदम हैं

  1. ServerA पर, mkdir / root / myusers
  2. ServerA पर, cp /var/lib/mysql/mysql/user.* / root / mylers /।
  3. सर्वरबी पर MySQL 5.5 स्थापित करें
  4. scp ServerB: / var / lib / mysql / mysql / * ServerA: / var / lib / mysql / mysql /।
  5. ServerA पर, cp /root/myusers/user.* / var / lib / mysql / mysql /।
  6. सेवा mysql प्रारंभ

बस।

यदि आप इसे विंडोज में चला रहे हैं, तो उन्हीं सिद्धांतों को लागू करना होगा।

कोशिश करो !!!

अद्यतन 2011-07-29 16:15 EDT

यदि आपके उपयोगकर्ता नाम में डीबी विशिष्ट विशेषाधिकार हैं, तो यहां आपके चरण हैं

  1. ServerA पर, mkdir / root / myusers
  2. ServerA पर, cp /var/lib/mysql/mysql/user.* / root / mylers /।
  3. ServerA पर, cp /var/lib/mysql/mysql/db.* / root / mylers /।
  4. सर्वरबी पर MySQL 5.5 स्थापित करें
  5. scp ServerB: / var / lib / mysql / mysql / * ServerA: / var / lib / mysql / mysql /।
  6. ServerA पर, cp / root / myusers / * / var / lib / mysql / mysql /।
  7. सेवा mysql प्रारंभ

0

सेवा शुरू नहीं की जा सकी। त्रुटि: 0।

वातावरण चर में MySQL पथ जोड़ें।


धन्यवाद, लेकिन यह पहले से ही पथ चर में था।
स्टीव

0

ऐसा लगता है कि यू पहले से ही mysql चल रहा है

प्रयत्न

ps ax|grep mysql

अगर यू कुछ आउटपुट देखते हैं, तो शायद यू इसे बंद कर दें (या रिबूट बॉक्स)।

अगर आपको कोई आउटपुट दिखाई नहीं देता है, तो mysqld को बिना डिमॉन्सेज़ के रन करें और आउटपुट देखें।


0

मैंने लोगों को सवाल का जवाब देने में मदद करने के लिए एक विंडोज़ टैग जोड़ा है।

मेरी पृष्ठभूमि खिड़कियां नहीं हैं, लेकिन प्रिंसिपल लागू होते हैं।

क्या कोई mysql प्रक्रिया पहले से चल रही है? यदि हां, तो आपको अनइंस्टॉल करने से पहले इसे मारना होगा। अगर यह तब भी चल रहा था जब आपने अनइंस्टॉल / रीइंस्टॉल करने की कोशिश की तो आपके पास पूरी तरह से अनइंस्टॉल होने से रोकने के लिए प्रोसेस और फाइल्स होंगी।

सेवाओं की खिड़की खोलें, नाम में mysql के साथ कुछ भी देखें, और यह सुनिश्चित करें कि यह रिबूट के साथ शुरू न करने के लिए सेट है। फिर रनिंग प्रोग्राम्स विंडो के रनिंग प्रोसेस टैब को खोलें (CTRL-ALT-DEL का उपयोग करें) और नाम में mysql के साथ रनिंग प्रोसेस को देखें और मारें।

यदि आप संतुष्ट हैं कि कोई और अधिक चलने वाली mysql प्रक्रिया नहीं है जिसे आप जारी रख सकते हैं। आप कुछ और अधिक चलने वाली mysql प्रक्रियाओं को लटकाने के लिए रिबूट करना चाह सकते हैं।

इस समय आपको mysql को पुनर्स्थापित और प्रारंभ करने में सक्षम होना चाहिए।


0

Mysql-test-run चलाएँ और आपको निम्न आउटपुट देखना चाहिए:

./mysql-test-run
Logging: ./mysql-test-run  
2013-09-14 03:39:32 2566 [Warning] Setting lower_case_table_names=2 because file system for /var/folders/fr/sn4l2f393_v_ytcwkb0lx7_40000gp/T/_M2mZFQPjV/ is case insensitive
2013-09-14 03:39:32 2566 [Note] Plugin 'FEDERATED' is disabled.
2013-09-14 03:39:32 2566 [Note] Binlog end
2013-09-14 03:39:32 2566 [Note] Shutting down plugin 'MyISAM'
2013-09-14 03:39:32 2566 [Note] Shutting down plugin 'CSV'
MySQL Version 5.6.13
Checking supported features...
 - SSL connections supported
Using suites: main,sys_vars,binlog,federated,rpl,innodb,innodb_fts,perfschema,funcs_1,opt_trace,parts,auth_sec
Collecting tests...
 - adding combinations for binlog



 - adding combinations for rpl
Removing old var directory...
Creating var directory '/Users/das/mysql/mysql-5.6.13-osx10.7-x86_64/mysql-test/var'...
Installing system database...
Using server port 50409

==============================================================================

TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------

0

यदि आप अपना डेटाडिर स्थानांतरित करते हैं, तो आपको न केवल नई डेटाडिर अनुमति देने की आवश्यकता है, बल्कि आपको यह सुनिश्चित करने की आवश्यकता है कि सभी मूल निर्देशिकाओं की अनुमति है।

मैंने अपना डेटाडिर एक हार्ड ड्राइव में स्थानांतरित कर दिया, जो उबंटू में घुड़सवार है:

/media/*user*/Data/

और मेरा डेटाडायर डेटाबेस था ।

मुझे मीडिया, उपयोगकर्ता और डेटा निर्देशिकाओं में से प्रत्येक के लिए 771 की अनुमति निर्धारित करनी थी :

sudo chmod 771 *DIR*

यदि यह काम नहीं करता है, तो आप mysql को काम करने का एक और तरीका उपयोगकर्ता को /etc/mysql/my.cnf में रूट में बदल सकते हैं; हालांकि सुरक्षा के दृष्टिकोण से ऐसा करने में कुछ मुद्दों पर कोई संदेह नहीं है।

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