2013-07-22 57 views
6

我在一個java程序的mysql中創建了一個數據庫。我的程序在我的朋友系統中運行良好。但我的mysql有一些問題。表'mysql.user'不存在:錯誤

查詢低於:

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'有沒有*損壞*或*丟棄*)我正在嘗試從SELECT命令** mysql.user'從命令行** **而MySQL的工作臺**正在運行的用戶和權限部分打開(基本上mysql.user表已被'MySQL-Workbench'鎖定*)。關閉工作臺解決了這個問題。我觀察到,反過來也是如此:如果我從'shell'以'root'身份登錄,然後嘗試導航到Workbench上的'Users和Privilege'部分,則會失敗。 –

回答

2

看起來像是你的MySQL安裝搞砸了。 mysql.user表應該肯定存在。試試你的服務器上運行以下命令在名爲mysql數據庫中創建表:

mysql_install_db 

如果不工作,也許在你的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.user:

use mysql; 
select * from user; 

如果這些都在思念你可以嘗試使用

mysql_install_db

或重新創建的表,你可能必須清理(完全刪除)並重新安裝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) 

檢查數據庫mysql和table用戶如上所示,如果該dosent工作,您的MySQL安裝不正確。

使用下面的命令中提到的其他職位重新安裝表

mysql_install_db 
+1

_mysql_install_db_已棄用。請考慮切換到'mysqld --initialize' – revoke

0

嘗試運行mysqladmin reload,它位於/usr/loca/mysql/bin/在Mac上。