Monday, May 12, 2014

MySQL: SHOW FUNCTION STATUS WHERE Db = ‘name’: Cannot load from mysql.proc. The table is probably corrupted

mysqldump: Couldn't execute 
'SHOW FUNCTION STATUS WHERE Db ='something'':
 Cannot load from mysql.proc. 
The table is probably corrupted (1548)

 
 
The reason why is because MySQL 5.5 provided an update to the schemas, which are not automatically applied to already existing databases. To provide that schema update, it's important to run the MySQL upgrade command, as it also helps with missing tables or prefixed tables.
The command is run as follows.
$ mysql_upgrade

If you're getting an access denied error, pass along the username + password.
$ mysql_upgrade mysqlcheck:
 Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to
 connect FATAL ERROR: Upgrade failed

$ mysql_upgrade -u root -p


That should solve your problem. If it does not, have a look at your MySQL logfiles for more indications.