2013-07-22 11 views
6

मैं जावा प्रोग्राम के लिए mysql में एक डीबी बना रहा हूं। मेरा प्रोग्राम मेरे दोस्तों सिस्टम में अच्छा काम करता है। लेकिन मुझे अपने mysql में कुछ समस्या है।तालिका 'mysql.user' मौजूद नहीं है: ERROR

क्वेरी नीचे है:

mysql> create database sampledb; 

Query OK, 1 row affected (0.00 sec) 

mysql> use sampledb; 

Database changed 

mysql> create user zebronics identified by 'zebra123'; 

ERROR 1146 (42S02): Table 'mysql.user' doesn't exist 

मैं नहीं कर सकते मेरी db.Please मदद के लिए किसी भी उपयोगकर्ता बनाने ??

+0

आप इस लिंक को पहले देख सकते हैं: http://dev.mysql.com/doc/refman/5.1/en/create-table.html –

+0

मेरे मामले में, सब कुछ बरकरार था (तालिका 'mysql' था * दूषित * या * गिराया नहीं गया *) मैं ** कमांड लाइन ** से mysql.user से 'चयन * की कोशिश कर रहा था, जबकि ** MySQL-Workbench **' उपयोगकर्ता और विशेषाधिकार 'अनुभाग खोला गया था (मूल रूप से mysql.user तालिका * MySQL-Workbench' द्वारा * लॉक * किया गया था)। बंद वर्कबेंच ने इस मुद्दे को हल किया। मैंने देखा कि बातचीत भी सच थी: अगर मैंने 'shell' से 'root' के रूप में लॉग इन किया है और फिर वर्कबेंच पर' उपयोगकर्ता और विशेषाधिकार 'अनुभाग पर नेविगेट करने का प्रयास करें, तो यह असफल हो जाएगा। –

उत्तर

2

ऐसा लगता है कि कुछ आपके MySQL स्थापना के साथ गड़बड़ हो गया है। mysql.user तालिका निश्चित रूप से मौजूद होना चाहिए। यदि वह काम नहीं करता है

mysql_install_db 

, हो सकता है आपके MySQL डेटा निर्देशिका पर अनुमतियों को अव्यवस्थित हैं: अपने सर्वर पर नीचे आदेश चलाकर डेटाबेस mysql बुलाया में तालिकाओं बनाने का प्रयास करें। अनुमतियों के संदर्भ के संदर्भ के रूप में "ज्ञात अच्छी" स्थापना को देखें।

आप MySQL को पूरी तरह से पुनः स्थापित करने का प्रयास भी कर सकते हैं।

1

आप उपयोगकर्ता तालिका के अस्तित्व की जांच के लिए निम्न क्वेरी चला सकते हैं।

SELECT * FROM information_schema.TABLES 
WHERE TABLE_NAME LIKE '%user%' 

आप एक पंक्ति को ढूंढ सकते हैं निम्न मानों के साथ

mysql user BASE TABLE MyISAM 

में आप नहीं कर सकते डेटाबेस के पुनर्निर्माण के लिए दिए गए लिंक पर इस तालिका नज़र मिल जाए How to recover/recreate mysql's default 'mysql' database

2

आपका डेटाबेस हो सकता है भ्रष्ट। यदि इन याद कर रहे हैं कर सकते हैं

mysql_install_db

या का उपयोग करके टेबल पुनः बनाने का प्रयास आप को साफ करने के लिए हो सकता है

use mysql; 
select * from user; 

आप (पूरी तरह से इसे हटाने) और पुनः स्थापित: जांच करने के लिए करता है, तो mysql.user मौजूद है की कोशिश करो माई एसक्यूएल। डेटाबेस mysql और टेबल उपयोगकर्ता के लिए

0
show databases; 
+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| datapass_schema | 
| mysql    | 
| test    | 
+--------------------+ 
4 rows in set (0.05 sec) 

mysql> use mysql; 
Reading table information for completion of table and column names 
You can turn off this feature to get a quicker startup with -A 

Database changed 
mysql> show tables 
    -> ; 
+---------------------------+ 
| 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      | 
+---------------------------+ 
23 rows in set (0.00 sec) 

mysql> create user m identified by 'm'; 
Query OK, 0 rows affected (0.02 sec) 

चेक के रूप में ऊपर दिखाए गए हैं कि dosent काम करते हैं, अपने mysql स्थापना उचित नहीं है।

तालिकाओं को दोबारा

mysql_install_db 
+1

_mysql_install_db_ बहिष्कृत है। कृपया 'mysqld - आरंभ करें' पर स्विच करने पर विचार करें – revoke

0

कोशिश रन mysqladmin reload, जो मैक पर /usr/loca/mysql/bin/ में स्थित है स्थापित करने के लिए अन्य पोस्ट में उल्लेख के रूप में नीचे आदेश का उपयोग करें।

संबंधित मुद्दे