MySQL工作台无法加载MySQL.proc

MySQL工作台无法加载MySQL.proc,mysql,mysql-workbench,Mysql,Mysql Workbench,我开始使用MySQL工作台工具,特别是用于数据建模。所以,我想做的第一件事是在web服务器上对现有数据库进行反向工程。但我无法完成这个过程,因为我总是收到这样一条奇怪的错误消息: Error: Cannot load from mysql.proc. The table is probably corrupted 我试着修这张桌子,但没有用。那么,你对这个问题有经验并知道如何解决它吗?我在MAC上使用的是MySQL 5.5.9版。我通过运行以下命令修复了此问题: mysql_upgrade -

我开始使用MySQL工作台工具,特别是用于数据建模。所以,我想做的第一件事是在web服务器上对现有数据库进行反向工程。但我无法完成这个过程,因为我总是收到这样一条奇怪的错误消息:

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

我试着修这张桌子,但没有用。那么,你对这个问题有经验并知道如何解决它吗?

我在MAC上使用的是MySQL 5.5.9版。我通过运行以下命令修复了此问题:

mysql_upgrade -uroot -p

我使用的是MySQL的MAMP Pro,Kevin的答案对我来说并不适用。 是的,我必须升级mysql,但我必须在终端上使用以下命令:

/Applications/MAMP/bin/repairMysql.sh
/Applications/MAMP/bin/upgradeMysql.sh
这对我有用。
希望这能对其他人有所帮助。

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

我使用了这个解决方案,效果很好:

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

它几乎在系统中的所有表中循环,但以一个固定的问题结束。

这是由于不同服务器版本需要更改架构造成的

mysql_upgrade -uroot -p
威尔·菲克斯会解决这个问题的


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

我在mac上使用MAMP,未能按照上面的建议通过命令行升级我的数据库,但当我使用MAMP PRO->TOOLS菜单选项(操作系统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工具都很高兴,我也是。使用MAMP-PRO(版本2.2),我尝试了pmking的建议,但仍然一无所获。所以我编辑了两个文件: /Applications/MAMP/bin/repairMysql.sh /Applications/MAMP/bin/upgradeMysql.sh

将每一个中的“proot”更改为“p”。这将创建一个MySQL根密码提示,它成功了


我希望这对其他人有帮助。

在debian 6、MySQL 5.1.73-1(debian)上,我也遇到了同样的问题,一个启动和停止帮助了我

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

不确定发生了什么,但在退出停止和启动之后,问题似乎消失了,只是想在这里添加它,以防其他人也有同样的问题。

我使用Centos 6.5用于服务器目的。以及用于ERR图的Mysql工作台。我也犯了同样的错误。上面的答案对我不适用

此答案基于更改注释列的数据类型。而且很有魅力

从控制台连接mysql

use mysql;
show create table mysql.proc;
然后查找评论栏。如果它的数据类型是char,则更改为text


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

这应该可以做到:

mysql\u升级-uroot-p--force

如果mysql命令不在shell的搜索路径中,则可能需要指定该命令的完整路径

在Debian 6上,应加载以下内容:

/usr/bin/mysql\u升级-uroot-p--force

在Mac的MAMP上,默认路径为:

/Applications/MAMP/Library/bin/mysql\u升级-uroot-p--force

在Windows上,它将安装MySQL并包含在bin子目录中。默认情况下,它应位于:

“C:\Program Files\MySQL\MySQL Server\[*更改为MySQL Server*]\bin\mysqladmin”-u根关机


原始资源:

当我在联接中的SQL查询中出现语法错误时,我遇到了这个错误

是的

加入s(…)上的商店。

而不是正确的

加入(…)上的商店。


这个错误真的很让人困惑,我不知道这与mysql.proc有什么关系,但是修复了查询就解决了这个问题。由于明显的原因,上述解决方案都不起作用

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

要解决此问题,请按照以下代码行操作:

mysql_upgrade -uroot -p --force

/usr/bin/mysql_upgrade -uroot -p --force
文章的完整细节可以在这里找到:

如果您使用的是基于Unix的(如Ubuntu),您可以尝试以下方法:

sudo ./mysql_upgrade -uroot -p

就像比马尔建议的那样

在windows上,使用XAMPP,我通过转到以下目录解决了此问题:


C:\xampp\mysql\bin
并运行可执行文件
mysql\u upgrade.exe
,确保您的mysql服务器正在运行。

我遇到了完全相同的错误,解决方案非常愚蠢,因此我建议在开始升级之前寻找简单的答案。在我的特殊情况下,问题是我:

COUNT (id) AS quantity ... # Fails: notice space between COUNT and (
应该在哪里读

COUNT(id) AS quantity ... # Works: notice no space between COUNT and (
当您不使用框架时会发生这种情况,您可以(应该)执行类似的操作,在本例中,使用5:


哇,我只是转到C:\xampp\mysql\bin并运行mysql\u upgrade.exe


它会自行修复,现在一切都很正常。

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

在哪里运行此命令?我似乎无法从终端shell或mysql中运行此命令。想法?我正在使用MAMP运行MySql-命令位于/Applications/MAMP/Library/bin/MySql\u upgradeWorked for me,刚刚添加了--force。谢谢。如果你还想知道在哪里运行这个命令,这对我来说是有效的。我让MAMP运行,然后打开终端并输入“mysql_upgrade-uroot-p--force”。在密码提示下,我输入了MAMP的密码。(我想这是典型的“根”)然后一切都修复了。谢谢@Kevin!我有完全相同的问题,但升级mysql后,问题是
$users = DB::table('users')->count();