Après que Fedora 28 ait décidé de mettre à niveau les packages de la communauté mysql vers la version 8.0 (la plus récente), j'ai réalisé que mon application échouait et j'ai dû rétrograder vers mysql 5.27.2
Bien sûr, mes fichiers db (.idb) étaient les mêmes (modifiés par mysql 8.0). Lors du démarrage du service mysql 5.27, il échoue. J'ai lu le fichier journal /var/log/mysqld.log et j'ai trouvé ceci:
InnoDB: Les indicateurs de table sont 0 dans le dictionnaire de données mais les indicateurs dans le fichier ./ibdata1 sont 0x4000!
Ce problème a été résolu suppression de toutes les bases de données fichiers:
cd /var/lib/mysql
Sudo rm -rf *
Veuillez noter que vous perdrez toutes les bases de données du serveur en faisant cela !!! Dans mon cas, j'ai eu un vidage et j'ai pu restaurer.
Assurez-vous que vous utilisez le client MySQL version 8.0 spécifiquement pour éviter cette erreur
RCA 1. Vous avez tenté de démarrer une version plus récente du serveur mysql avec mysqld_safe (ver5) au lieu de la version 8.0
Solution
export MYSQL_8_HOME=/path/to/mysql-8.0.17-macos10.14-x86_64 #e.g /usr/local/mysql-8.0.17-macos10.14-x86_64
cd $MYSQL_8_HOME # where is the dorectory mysql v8.0 was installed.
bin/mysqld_safe --user=mysql --datadir=/path/to/data/mysql
Juste pour une mesure supplémentaire, vous pourriez envisager de mettre à jour votre variable PATH pour la préfixer avec la nouvelle version de programmes MySQL comme celui-ci
export PATH=$MYSQL_HOME/bin:$PATH
avant de démarrer mysqld_safe