Lorsque j'essaie d'installer mysql-server, une erreur se présente comme:
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
Qu'est-ce que ça veut dire. Des idées?
dpkg
renvoyer un code d'erreur 1 ne signifie rien de spécifique mais cela a généralement à voir avec des problèmes de dépendance. Dans votre cas, vous avez essayé d'installer deux versions/instances du même package, c'est-à-dire mysql-server
et mysql-server-5.7
. Faites donc ce qui suit pour supprimer tout problème de dépendance redondant et installer un package mysql fonctionnel
Sudo apt-get clean
Sudo apt-get purge mysql*
Sudo apt-get update
Sudo apt-get install -f
Sudo apt-get install mysql-server-5.7
Sudo apt-get dist-upgrade
cela devrait résoudre le problème actuel. Mais à l'avenir, faites attention aux noms de packages que vous ajoutez après Sudo apt-get install
puisque la mauvaise liste de noms de packages - par exemple des entrées redondantes dans la liste - entraîne l'échec de l'installation de l'un des packages ou pire - vous pourriez même vous retrouver à patauger dans les profondeurs infernales de # DEPENDENCY-HELL
Si vous êtes sur un VPS ou similaire, votre erreur peut être due à un manque de RAM.
L'exécution d'apt-upgrade semble nécessiter de la RAM, il peut donc forcer la fermeture de mysql, d'où le problème pour se remettre de l'erreur.
Essayer:
1) Arrêtez mysql manuellement avant toute mise à niveau d'apt
Sudo /etc/init.d/mysql stop
2) Correction:
Sudo dpkg --configure mysql-server-X.X
(si la version n'est pas connue, utilisez simplement mysql-server pour savoir (ne corrigera pas l'erreur)
3) Vérifiez:
Sudo apt-get upgrade
Démarrez mysql manuellement s'il n'a pas été démarré par apt.
Cela devrait aider
Sudo apt-get purge mysql*
Sudo apt-get autoremove
Sudo apt-get autoclean
Sudo apt-get dist-upgrade
Et maintenant, réinstallez mysql
Sudo apt-get install mysql-server
Ma réponse de askubunt .
Aucune des méthodes apt
n'a fonctionné pour moi, essayez ceci:
Recherche du processus de verrouillage
$ ps -eaf
root 7316 1 0 00:19 ? 00:00:00 /usr/bin/dpkg --status-fd 35 --configure --pending
root 7808 7316 0 00:19 ? 00:00:00 /usr/bin/Perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/mysql-se
root 7817 7808 0 00:19 ? 00:00:00 /bin/bash /var/lib/dpkg/info/mysql-server-5.7.postinst configure
mysql 7973 7817 0 00:20 ? 00:00:00 mysqld --user=mysql --init-file=/var/lib/mysql-files/tmp.iNyY06ty0K --so
Tuez-le
faire Sudo kill -9 7973
, en gros celui de mysql
.
Purger maintenant
Sudo apt-get purge mysql-server-5.7 # Or whatever you are trying to purge.
J'ai eu un problème similaire. C'est comme ça que j'ai réparé le mien.
Sudo service mysql restart
Sudo apt install -f
Toutes les réponses que j'ai pu trouver pour cette question étaient de la forme "purgez votre installation Mysql et réinstallez-la". Mais dans mon cas, j'ai déjà une installation Mysql active/active. Pour moi, la raison pour laquelle dpkg --configure -a
échoue parce que Mysql est déjà installé. Pourquoi dpkg pense que le script de post-installation doit être exécuté pour mon Mysql déjà installé et mis à niveau, je ne le sais peut-être jamais, mais c'est le cas.
Après un temps considérable à chercher des réponses, j'ai trouvé une solution qui devrait fonctionner s'il y en a d'autres qui ont déjà un Mysql 5.7 fonctionnel et qui veulent juste passer ce faux script de post-installation. Vous pouvez modifier le script de post-installation directement comme (sur Ubuntu):
Sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
Et puis, sur la deuxième ligne, ajoutez simplement exit 0
puis exécutez à nouveau dpkg
et vous devriez obtenir quelque chose comme:
$ Sudo dpkg --configure -a
Setting up mysql-server-5.7 (5.7.28-0ubuntu0.18.04.4) ...
Vous ne voudrez certainement pas suivre ces instructions si votre installation Mysql ne s'est pas terminée auparavant (il y a une raison pour laquelle le script de post-installation insiste pour être exécuté). Mais pour ceux qui pourraient se retrouver avec dpkg dans un état bancal, comme je l'ai fait, ce qui précède peut vous faire économiser beaucoup de temps pour purger et réinstaller une version déjà fonctionnelle de Mysql.
Si vous travaillez sur Debian 10, vous devez d'abord installer GNUPG:
Sudo apt-get install gnupg
C'est tout; vous pouvez maintenant réessayer dpkg
.
Pour résoudre le problème de dépendance, essayez:
Sudo apt-get purge
Sudo apt-get clean
Sudo apt-get check
Et réinstallez le package à nouveau par: Sudo apt-get install mysql-server
.
Source: Thread: Dpkg: Problèmes de dépendance - laissant non configuré .
Autres commandes à essayer:
Sudo apt-get install -f
Sudo apt-get autoremove
Sudo dpkg --configure -a
Connexes: Comment puis-je résoudre la dépendance de dpkg? at Ask Ubuntu .
Le problème peut être beaucoup plus simple (dans mon cas) J'ai eu une valeur mal configurée dans mon fichier de configuration [my.cnf] qui a conduit à l'erreur. Après le nettoyage de my.cnf mysql-server a été redémarré avec succès