MySQL Failed to CREATE FUNCTION
Ce matin, grosse peur et surtout gros coup de stress !!! voilà que lors d’une mise à jour de code sur un projet une requête me retourne une erreur sur ma base MySQL. L’insulte: ERROR 1307 (HY000): Failed to CREATE FUNCTION. J’ouvre un shell MySQL et je tente:
delimiter // CREATE FUNCTION myMethod() RETURNS bigint(20) BEGIN RETURN 1; END //
Retour de la requête:
ERROR 1307 (HY000): Failed to CREATE FUNCTION myMethod
Que se passe-t-il ? Après moult recherches, des tests et pas mal de café j’ai compris le souci. Depuis que j’ai mis à jour mon paquet MySQL (c’est à dire depuis plus de 6 mois) je suis passé d’un MySQL 5.1.2x à 5.1.3x. Mes bases fonctionnaient mais la mise à jour du moteur n’a pas terminé son travail. Pour corriger le problème il m’a suffit de faire dans un shell:
mysql_upgrade -u root -p
Pensez à ne pas mettre “-p” si vous n’avez pas de mot de passe MySQL (pas recommandé). Cela m’a réparé pas mal de tables, des indexes et surtout j’ai enfin put faire fonctionner ma procédure MySQL.
Avis à ceux qui sont dans le même cas que moi, ça doit fonctionner !