Acabo de actualizar mi sistema Linux de Fedora Core 4 a Fedora Core 6. Aparte de un problemilla con la actualización del GRUB que he resuelto en el primer arranque, todo parecía haber ido bien. Sin embargo, la actualización de MySQL 4.x a MySQL 5.x que se ha ejecutado durante el proceso de actualización de Fedora no ha ido todo lo fina que debería. En un principio, parece que todo es correcto, pues las aplicaciones web que tenía alojadas en mi pc local seguían funcionando (y todas ellas hacen uso de MySQL en la capa de datos). Sin embargo, probando MySQL Workbench (el modelador gráfico de bases de datos), no conseguía hacer funcionar la opción de Ingeniería Inversa (dada una base de datos ya construída, extraer el esquema E/R). El error con el que me encontraba era el siguiente:
Error log: Fetching schemata... Schemata fetched. Reverse engineering schema...Error calling ReverseEngineeringMysql.reverseEngineer: Could not get routines.The schema(ta) could not be reverse engineered (error: 0) Could not get routines. (SHOW PROCEDURE STATUS;MySQL Error 1146: Table 'mysql.proc' doesn't exist)
He seguido esa cadena de error (mysql.proc, tabla que se genera para la gestión de procedimientos almacenados) en el bugzilla de MySQL y he visto que al parecer no soy el único al que le ha ocurrido (ver último comentario). La tabla mysql.proc se genera al instalar mysql 5. Si simplemente actualizamos de la versión 4 a la 5, tendremos problemas si no seguimos el último paso que indica explícitamente el manual, y más en concreto aquí: http://dev.mysql.com/doc/refman/5.0/en/mysql-upgrade.html
$ mysqlcheck --check-upgrade --all-databases --auto-repair
$ mysql_fix_privilege_tables
Voilá! Ahora puedo trabajar sin problemas con MySQL Workbench.