MySQL Workbench无法加载mysql.proc

我开始使用MySQL Workbench工具,尤其是数据build模。 所以,我想要做的第一件事是在Web服务器上对我现有的数据库进行逆向工程。 但是我不能完成这个过程,因为我总是得到这个奇怪的错误信息:

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

我试图修复这个表,但它不能帮助我。 那么,你有没有这个问题的经验,并知道如何解决这个问题?

我在MAC上使用MySQL版本5.5.9。 我通过运行解决了这个问题:

 mysql_upgrade -uroot -p 

我使用MySQL通过MAMP Pro,凯文的答案不适合我。 是的,我不得不做一个MySQL升级,但我不得不在terminal上使用以下命令:

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

这对我有效。 希望这可以帮助别人..

我在CentOS中使用了XAMPP,并手动升级了除现有数据文件夹之外的XAMPP。 随着MySQL和旧数据库文件的新服务器软件,我得到了同样的错误。

我用这个解决scheme,工作得很好:

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

它遍历系统中的几乎所有表格,但是以固定的问题结束。

在Windows上,使用XAMPP,我设法通过转到目录来解决问题:

C:\xampp\mysql\bin并运行你会在里面find的可执行文件mysql_upgrade.exe ,确保你的mysql服务器正在运行。

我在Mac上使用MAMP,并没有通过上面build议的命令行升级我的数据库,但它使用MAMP PRO-> TOOLS菜单选项(OS X屏幕顶部)'检查','修复'和'升级'数据库。

我认为GUI为底层的CLI工具提供了必要的选项,所以您不必考虑这些选项需要什么(而不是手动运行CLI工具)。

以这种方式升级我的MAMP(通过MAMP PRO的GUI工具)使得我的(单独的)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工具都很开心,我也是如此。

如果这发生在特定的查询上,请注意,当您尝试使用未定义的函数时也会发生这种情况。

发生这种情况是由于不同服务器版本所需的架构更改。

 mysql_upgrade -uroot -p 

将提交问题。

有时您需要卸载服务器并清理其数据目录。 并重新安装以制作数据文件的全新副本。

使用MAMP PRO(版本2.2)我尝试了pmking的build议,但仍然无处可去。 所以我编辑了两个文件:/Applications/MAMP/bin/repairMysql.sh /Applications/MAMP/bin/upgradeMysql.sh

将“proot”改为“p”。 这将创build一个MySQL根密码的提示,它工作!

我希望能帮助别人。

在Debian 6上,MySQL 5.1.73-1(Debian),我有同样的问题,一个开始和停止帮助我。

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

不知道发生了什么,但是这个问题似乎在这个退出停止和开始后消失,只是想在这里添加它,以防其他人有同样的问题。

我正在使用Centos 6.5作为服务器的目的。 和ERR图的Mysql Workbench。 我得到了同样的错误。 上面的答案不适合我。

这个答案基于改变评论栏的数据types。 像魅力一样。

从控制台连接mysql。

 use mysql; show create table mysql.proc; 

然后find评论栏。 如果它的数据types是char,则改为text。

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

我得到这个错误,当我在一个连接的SQL查询语法错误。

我做了

JOIN shops ON s (...)

而不是正确的

JOIN shops s ON (...)

这个错误真的令人困惑,我不知道这与mysql.proc有什么关系,但修复查询解决了这个问题。 上述解决scheme没有一个明显的原因。

当架构中的更改需要不同版本的mysql服务器时,可能会发生这种情况。

要解决这个问题,请按照下面的代码行:

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

完整的发布细节将在这里find: 无法从mysql.proc加载。 该表可能已损坏

如果你是基于Unix的(比如Ubuntu),你可以试试这个:

 sudo ./mysql_upgrade -uroot -p 

像Bimalbuild议的那样。

我有完全相同的错误,解决scheme只是愚蠢的,所以我build议寻找简单的答案,才能开始升级的东西。 在我的情况下,问题是我做的:

 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(); 

哇,我只是去C:\ xampp \ mysql \ bin并运行mysql_upgrade.exe

它修复自己,现在正在工作很好。

这应该做的伎俩:

mysql_upgrade -uroot -p --force

如果mysql不在shell的searchpath中,你可能需要指定命令的完整path。

在Debian 6上,它应该加载:

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

在Mac的MAMP上,默认path是:

/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

原始资源: 如何解决MySQL错误代码:1548无法从mysql.proc加载。 该表可能已损坏