Mysql – Cannot load from thesql.proc. The table is probably corrupted


I know that it looks like duplicate, but the solutions which I found don't work for me.
I uninstalled MySQL 5.1 and installed 5.6, and I would like to import a previously exported SQL file back. But there is some function which causes an error in that export file.
I found and ran the command:

../bin mysql mysql_upgrade -uroot -p --force

but if I understand, it works only when upgrade, not with install. Is there some solution for me?

I also 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:


CREATE FUNCTION `randStr250`(length int) RETURNS varchar(250) CHARSET utf8
  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.";
    set i=0;
    while i<length do
        set s=concat(s,sha1(now()));
        set i=i+1;
    end while;
  end if;
  return s;
end $$


Best Solution

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.

Related Question