2011-10-19 77 views

回答

1

請注意,您並不只是刪除表格 - 您刪除了整個mysql權限數據庫。 您需要找到腳本'mysql_install_db'。這將重新創建mysql權限數據庫。

請注意,通過刪除並重新創建權限數據庫 - 其他應用程序可能會停止工作,因爲其用戶/ etc不再存在。

+1

應用程序的好處。我忘了在我的回答中加上 –

+0

@詹姆斯 - 謝謝 - 只知道這個,因爲我以前打過這堵牆;-) –

+0

所以我不小心也這樣做了(試圖遷移數據庫並意外將它遷移到自己。 ..)但我的用戶仍然可以登錄。是用戶\密碼緩存? – dangel

2

有沒有很多,你可以做。如果你可以運行查詢和最近備份使用「BACKUP TABLE」整個數據庫,那麼你可以嘗試運行此查詢:

RESTORE TABLE mysql.user FROM '/path/to/backup/directory' 

如果你不能,那麼你將有「--skip執行mysql的-grant-tables'選項。這將允許你獲得獲取權限。您還可以通過運行mysql_install_db命令來重新創建它。 Found Here

無論哪種方式,你的表應該是這樣的

+-----------------+---------------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+-----------------+---------------+------+-----+---------+-------+ 
| Host | varchar(20) | | PRI | | | 
| User | varchar(6) | | PRI | | | 
| Password | varchar(41) | | | | | 
| Select_priv | enum('N','Y') | | | N | | 
| Insert_priv | enum('N','Y') | | | N | | 
| Update_priv | enum('N','Y') | | | N | | 
| Delete_priv | enum('N','Y') | | | N | | 
| Create_priv | enum('N','Y') | | | N | | 
| Drop_priv | enum('N','Y') | | | N | | 
| Reload_priv | enum('N','Y') | | | N | | 
| Shutdown_priv | enum('N','Y') | | | N | | 
| Process_priv | enum('N','Y') | | | N | | 
| File_priv | enum('N','Y') | | | N | | 
| Grant_priv | enum('N','Y') | | | N | | 
| References_priv | enum('N','Y') | | | N | | 
| Index_priv | enum('N','Y') | | | N | | 
| Alter_priv | enum('N','Y') | | | N | | 
+-----------------+---------------+------+-----+---------+-------+ 
+0

順便說一句,我怎麼能刪除一個名爲'my/db'的數據庫,我使用'drop database my/db'來顯示我的語法錯誤。 – coolesting

+0

數據庫名稱應該(通常不能)包含\或/。正常的命名約定使用CamelCase和_命名。 http://dev.mysql.com/doc/refman/5.1/en/identifiers.html - 8.2。模式對象名稱 –

+0

但在創建之前,它有一個名爲'my/db'的表,我只想刪除它? – coolesting

0

您還可以通過運行在MySQL/bin目錄中找到文件修復mysql_upgrade。 只需運行該文件,它將修復所有表格。

+0

正在運行mysql_update -uroot -v -f給我:\ bin> mysql_upgrade -u root --force mysql_upgrade:出錯:1524:插件'* 3341D225A70FDF32F7D6E158192BF9A65654BE7F'在連接到MySQL服務器時未加載 升級過程遇到錯誤並且將不會繼續。 – FMaz008