web-dev-qa-db-fra.com

le service mysqld ne démarre pas

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!

8
jmojico

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.

10
jmojico

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

0
Abdurrahman Adebiyi