我开始使用MySQL Workbench工具,特别是用于数据建模。所以,我想要做的第一件事就是在Web服务器上对现有数据库进行逆向工程。但是我无法完成这个过程,因为我总是得到这个奇怪的错误信息:
Error: Cannot load from mysql.proc. The table is probably corrupted
我试图修复这张桌子,但它对我没有帮助。那么,你对这个问题有什么经验并知道如何解决它吗?
答案 0 :(得分:91)
我在MAC上使用MySQL版本5.5.9。我通过运行:
解决了这个问题mysql_upgrade -uroot -p
答案 1 :(得分:11)
我正在使用MySQL通过MAMP Pro,而凯文的回答对我不起作用。 是的,我必须做 mysql升级 但是我必须在终端上使用以下命令:
/Applications/MAMP/bin/repairMysql.sh
/Applications/MAMP/bin/upgradeMysql.sh
这对我有用。 希望这对其他人有帮助..
答案 2 :(得分:4)
我在CentOS中使用了XAMPP并手动升级了除现有数据文件夹之外的XAMPP。 使用MySQL的新服务器软件和旧的数据库文件,我得到了同样的错误。
我使用此解决方案并且运行良好:
cd /opt/lampp/bin
./mysql_upgrade -uroot -p
它几乎遍历了系统中的所有表格,但以固定的问题结束。
答案 3 :(得分:1)
我在mac上使用MAMP并且无法通过命令行升级我的数据库,如上所述,但是当我使用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工具都很开心,我也是。
答案 4 :(得分:1)
我正在将Centos 6.5用于服务器目的。和Mysql Workbench for ERR Diagram。我得到了同样的错误。上面的答案对我不起作用。
此答案基于更改评论列的数据类型。和魅力一样。
从控制台连接mysql。
use mysql;
show create table mysql.proc;
然后查找评论列。如果它的数据类型为char,请更改为文本。
您还可以使用任何其他gui进行更改。
答案 5 :(得分:1)
如果在特定查询中发生这种情况,请注意当您尝试使用未定义的函数时也会发生这种情况。
答案 6 :(得分:0)
这是由于不同服务器版本所需的架构更改而发生的。
mysql_upgrade -uroot -p
将解决问题。
有时您需要卸载服务器并清理其数据目录。并重新安装以制作数据文件的新副本。
答案 7 :(得分:0)
使用MAMP PRO(2.2版)我尝试了pmking的建议,但仍然无处可去。所以我编辑了两个文件: /Applications/MAMP/bin/repairMysql.sh /Applications/MAMP/bin/upgradeMysql.sh
在每个中将'proot'更改为'p'。这会创建一个MySQL root密码的提示,并且它有效!
我希望能帮到别人。
答案 8 :(得分:0)
/etc/init.d/mysql stop
/etc/init.d/mysql start
不确定会发生什么,但问题似乎在此戒烟并开始后消失,只是想在此处添加,以防其他人遇到同样的问题。
答案 9 :(得分:0)
这应该可以解决问题:
mysql_upgrade -uroot -p --force
如果 mysql 它不在shell的搜索路径中,您可能需要指定命令的完整路径。
在Debian 6上应该加载:
/usr/bin/mysql_upgrade -uroot -p --force
在Mac的MAMP上,默认路径为:
/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
答案 10 :(得分:0)
当架构中的更改需要不同版本的mysql服务器时,可能会发生这种情况。
要解决此问题,请按以下代码行执行:
mysql_upgrade -uroot -p --force
/usr/bin/mysql_upgrade -uroot -p --force
帖子的完整详情可在此处找到:Cannot load from mysql.proc. The table is probably corrupted
答案 11 :(得分:0)
如果你是基于Unix的(如Ubuntu),你可以试试这个:
sudo ./mysql_upgrade -uroot -p
像Bimal建议的那样。
答案 12 :(得分: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();
答案 13 :(得分:0)
它自我修复,现在正在努力工作。