Ne peut pas charger à partir de mysql.proc. La table est probablement endommagé

je sais que cela ressemble à dupliquer, mais les solutions que j'ai trouvé ne fonctionne pas pour moi. J'ai désinstallé mysql 5.1 et installé 5.6 et je voudrais importer previouse exportation sql fichier. Mais il y a une fonction qui fait de cette erreur dans ce fichier d'exportation. J'ai trouvé et exécuter la commande:

../ bin mysql mysql_upgrade -uroot-p --force mais si je comprends bien, cela ne fonctionne que lors de la mise à niveau, pas avec l'installation. Est-il une solution pour moi?

Merci!

EDIT: J'ai supprimé la définition de la fonction du fichier d'importation et l'importation est faite. Mais si je veux redéfinir cette fonction manuellement, il me montre la même erreur "ne peut pas charger à partir de mysql.proc". La fonction est ici:

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 ;
19
demandé sur Čamo 2015-01-13 12:28:18

2 réponses

a eu un problème similaire après avoir restauré un dump db de mysql-5.5.29 à mariadb-5.5.41. mysql_upgrade a corrigé le problème

$ mysql_upgrade -u root -pxxx 

Selon manuel mysql,

vous devez exécuter mysql_upgrade chaque fois que vous mettez à jour MySQL.

30
répondu ffeast 2015-05-13 20:50:50

La plupart des gens qui ont ce problème recommandent d'améliorer MySQL. Si vous êtes dans une configuration, comme moi, dans laquelle cela se produit lorsque vous essayez de configurer un noeud esclave pour répliquer à partir d'un noeud maître, vous ne voulez pas vraiment faire des erreurs avec les versions.

je veux dire, dans mon cas, j'avais un noeud maître Windows et je mettais en place un noeud esclave Linux (donc, faire la danse mysqldump en premier). Puisque la mise à jour de MySQL est un peu plus délicate sous Linux (ou plutôt, il est en fait préférable de ne pas le faire, profitez de la stabilité des paquets Linux qui, par exemple, proviennent de votre distribution LTS), c'est peut-être juste une bonne idée de s'assurer que la version MySQL que vous avez dans votre système D'exploitation Windows exécute la même version que votre version MySQL dans votre système D'exploitation Linux.

Une fois que j'ai fait en sorte que les deux versions soient les mêmes, mysqldump et restore ont fonctionné, et j'ai pu configurer correctement un noeud D'esclave sans recevoir la terrible erreur Cannot load from mysql.proc. The table is probably corrupted..

Espérons que cette aide.

1
répondu knocte 2016-07-07 14:14:45