2011-07-22 31 views
48

我開始特別使用MySQL Workbench工具進行數據建模。所以,我想要做的第一件事是在Web服務器上對我現有的數據庫進行逆向工程。但我無法完成的過程,因爲我送花兒給人得到這個奇怪的錯誤消息:MySQL Workbench無法加載mysql.proc

Error: Cannot load from mysql.proc. The table is probably corrupted 

我試圖修復此表,但它不能幫助我。那麼,你對這個問題有什麼經驗,並且知道如何解決它?

+0

我有一個直接安裝mysql 5.6的同樣的問題。我試過mysql_upgrade -uroot -p但它沒有幫助。 –

回答

90

我在MAC上使用MySQL版本5.5.9。我通過運行解決了這個問題:

mysql_upgrade -uroot -p 
+0

你在哪裏運行這個命令?我似乎無法從終端shell或mysql中運行此命令。思考? – Anthony

+0

我使用MAMP運行MySql - 命令在/ Applications/MAMP/Library/bin/mysql_upgrade – Kevin

+1

爲我工作,只需添加--force。謝謝。 – Oversteer

11

我正在使用MySQL槽MAMP Pro,而凱文的答案對我沒有幫助。 是的,我不得不做MySQL的升級,但我不得不使用在終端中輸入以下命令:

/Applications/MAMP/bin/repairMysql.sh 
/Applications/MAMP/bin/upgradeMysql.sh 

這爲我工作。 希望這可以對別人有所幫助。

4

我在CentOS中使用了XAMPP,並手動升級了除現有數據文件夾之外的XAMPP。 隨着MySQL和舊數據庫文件的新服務器軟件,我得到了同樣的錯誤。

我做了這個解決方案和優良的工作:

cd /opt/lampp/bin 
./mysql_upgrade -uroot -p 

它通過在系統中幾乎所有的表環,但有固定的問題結束。

0

發生這種情況是由於不同服務器版本所需的架構更改。

mysql_upgrade -uroot -p 

將解決問題。

有時您需要卸載服務器並清理其數據目錄。並重新安裝以創建數據文件的全新副本。

1

我在Mac上使用MAMP,但無法通過上述建議的命令行升級我的數據庫,但是當我使用MAMP PRO-> TOOLS菜單選項(OS X屏幕頂部)檢查'修復'和'升級'數據庫。

我認爲GUI爲底層CLI工具提供了必要的選項,因此您不必考慮這些選項需要什麼(而不是手動運行CLI工具)。 (通過MAMP PRO的GUI工具)升級我的MAMP使得我的(單獨的)Oracle mysqlWorkbench 6.0應用程序能夠在OS X 10.8.5(Mountain Lion)的本地MAMP PRO 2.0.5數據庫上正常工作, mysqlworkbench之前說過腐敗(但MAMP的phpmyadmin在他們「腐敗」時好奇地工作)。現在,mysqlWorkbench 6.0和MAMP PRO的phpmyadmin工具都很開心,我也是如此。

0

使用MAMP PRO(版本2.2)我嘗試了pmking的建議,但仍然無處可尋。所以,我編輯的兩個文件: /Applications/MAMP/bin/repairMysql.sh /Applications/MAMP/bin/upgradeMysql.sh

改變 'PROOT' 在每一個 'P'。這會爲MySQL根密碼創建一個提示,並且它工作正常!

我希望能幫助別人。

0

關於debian 6,MySQL 5.1.73-1(Debian),我遇到了同樣的問題,並且啓動和停止幫助了我。

/etc/init.d/mysql stop 
/etc/init.d/mysql start 

不知道發生什麼,但問題似乎消失在此之後退出停機和啓動,只是想在這裏補充它,萬一別人有同樣的問題。

0

我使用Centos 6.5作爲服務器用途。和ERR圖的Mysql Workbench。我得到了同樣的錯誤。上面的答案不適合我。

此答案基於更改評論欄的數據類型。像魅力一樣工作。

從控制檯連接mysql。

use mysql; 
show create table mysql.proc; 

然後尋找評論列。如果它的數據類型是char,則更改爲文本。

您也可以使用任何其他gui進行更改。

0

這應該做的伎倆:

mysql_upgrade -uroot -p --force

您可能需要如果MySQL的它不是在shell的搜索路徑指定命令的完整路徑。

在Debian 6,應裝有:

/usr/bin/mysql_upgrade -uroot -p --force

在Mac上的甲基苯丙胺的默認路徑是:

/Applications/MAMP/Library/bin/mysql_upgrade -uroot -p --force

在Windows這將是MySQL已安裝的位置和包含在bin子目錄中。默認情況下,它應該位於:

"C:\Program Files\MySQL\MySQL Server\[*CHANGE TO MySQL SERVER*]\bin\mysqladmin" -u root shutdown

原始資源:How to Resolve MySQL Error Code: 1548 Cannot load from mysql.proc. The table is probably corrupted

0

我得到這個錯誤,當我在SQL查詢中加入了一個語法錯誤。

我做

JOIN shops ON s (...)

而不是正確的

JOIN shops s ON (...)

此錯誤是真正令人困惑,我不知道這是什麼有mysql.proc的做,但修復查詢修復了問題。上述解決方案都沒有出於顯而易見的原因。

0

這可能發生在模式更改需要不同版本的mysql服務器時。

爲了解決這個問題,請按照代碼的下面一行:

mysql_upgrade -uroot -p --force 

/usr/bin/mysql_upgrade -uroot -p --force 

後的全部細節將在這裏找到:Cannot load from mysql.proc. The table is probably corrupted

0

如果你在基於Unix的(比如Ubuntu),你可以試試這個:

sudo ./mysql_upgrade -uroot -p 

像Bimal建議的那樣。

2

在Windows上,XAMPP我設法去的目錄來解決該問題:

C:\xampp\mysql\bin和運行可執行mysql_upgrade.exe,你會發現裏面時,請確保你的MySQL服務器正在運行。

+0

這一個在Windows 7中爲我工作,停止並啓動你的MySQL服務器 –

0

我有完全相同的錯誤,解決方案只是愚蠢的,所以我建議在開始升級之前尋找簡單的答案。在我的特殊情況下,問題是我所做的:

COUNT (id) AS quantity ... # Fails: notice space between COUNT and (

它應該閱讀

COUNT(id) AS quantity ... # Works: notice no space between COUNT and (

這發生在你不使用框架,你可以(應該)做這樣的事情,在這種情況下,在Laravel 5:

$users = DB::table('users')->count(); 
0

哇,我只是去到C:\ XAMPP的\ mysql的\ bin並運行mysql_upgrade.exe

它修復自己,現在永恆的工作是偉大的。

1

如果這發生在特定查詢上,請注意,當您嘗試使用未定義的函數時也會發生這種情況。

+0

謝謝,這是發生在我身上的事情。使用'STR_TO_TIME'而不是'STR_TO_DATE'。 – Gareth