Home » Mysql » Cannot load from mysql.proc. The table is probably corrupted

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

Posted by: admin November 29, 2017 Leave a comment

Questions:

I know that it looks like duplicate, but the solutions which I found doesnt work for me.
I uninstalled mysql 5.1 and installed 5.6 and I would like to import previouse export sql file back. But there is some function which makes this error in that export file.
I found and run command:
../bin mysql mysql_upgrade -uroot -p –force
but if I understant, it works only when upgrade, not with install. Is there some solution for me?

Thanks!

EDIT:
I removed the function definition from import file and import is done. But if I want to redefine that function manually it shows me the same error “can not load from mysql.proc”.
Function is here:

DELIMITER $$

CREATE FUNCTION `randStr250`(length int) RETURNS varchar(250) CHARSET utf8
begin
  declare s varchar(250);
  declare i tinyint;
  set s="";
  if (length<1 or length>6) then
      set s="Parameter should be in range 1-6. Your value was out of this range.";
  else
    set i=0;
    while i<length do
        set s=concat(s,sha1(now()));
        set i=i+1;
    end while;
  end if;
  return s;
end $$

DELIMITER ;
Answers:

Had a similar issue after restorting a db dump from mysql-5.5.29 to mariadb-5.5.41. mysql_upgrade fixed the issue

$ mysql_upgrade -u root -pxxx 

According to the mysql manual,

You should execute mysql_upgrade each time you upgrade MySQL.

Questions:
Answers:

Most people that have this problem are recommending upgrading MySQL. If you’re in a configuration, like me, in which this happens when you try to set up a SLAVE node to replicate from a MASTER node, you don’t really want to mess up with versions.

I mean, in my case I had a Windows MASTER node and was setting up a Linux SLAVE node (so, doing the mysqldump dance first). Since upgrading MySQL is a bit more tricky in Linux (or rather, it’s actually better not to do it, to enjoy the stability of Linux packages that, for example, come from your LTS distribution), it’s maybe just a good idea to make sure that the MySQL version that you have in your Windows OS is running the same version as your MySQL version in your Linux OS.

Once I made sure both versions were the same, the mysqldump and restore worked, and I could set up a SLAVE node properly without receiving the dreadful error Cannot load from mysql.proc. The table is probably corrupted..

Hope this helps.