9 votes

apt-get se bloque lors de la mise à niveau de mysql-server-5.1

Lorsque j'essaie de faire ce qui suit :

sudo apt-get update
sudo apt-get upgrade

sur mon installation Ubuntu Server 10.04, il se bloque à la ligne suivante :

Preparing to replace mysql-server-5.1 5.1.41-3ubuntu12.1 (using .../mysql-server-5.1_5.1.41-3ubuntu12.3_i386.deb)

Je ne peux même pas faire CTRL-C pour en sortir ! Je finis par devoir tuer ma session et me connecter à partir d'un autre terminal et le processus de mise à niveau est toujours en cours. J'ai redémarré plusieurs fois et quand je retourne en arrière pour essayer à nouveau, il me dit :

E: dpkg was interrupted, you must manually run 'sudo --configure -a' to correct the problem.

Une fois que j'ai fait cela, je suis de retour à la case départ et le système se bloque lorsque j'essaie de mettre à jour mySQL.

6voto

ChristopheD Points 38217

Apparemment, la mise à jour attend que le serveur démarre et pour une raison quelconque, il ne le fait pas. Pour résoudre le problème, il y a plusieurs possibilités.

Le plus facile :

  1. Ouvrez un nouveau terminal, et exécutez :

    sudo services mysql start

Plus compliqué mais parfois nécessaire : (c'est pratique lorsque vous n'avez pas accès à un autre terminal) :

  1. Appuyez sur "^z" ( Ctrl + Z ) qui "arrêtera" votre travail. Ensuite, exécutez :

    sudo services mysql start
  2. Une fois le serveur démarré, tapez ce qui suit et appuyez sur Entrée :

    fg 

    Cela remettra votre tâche "STOPPÉE" au premier plan et reprendra là où elle s'est arrêtée.

2voto

jlsecrest Points 585

Essayez de passer à un niveau inférieur à apt, après avoir sauvegardé vos bases de données :

sudo dpkg -r mysql-server
sudo apt-get check    # verify that apt's metadata is okay
sudo apt-get install mysql-server

ajouté :

から dpkg -r essaie de s'étouffer dpkg --purge et, à défaut, récupérer le contenu du paquet avec dpkg -L mysql-server-5.1 les zapper et ensuite s'amuser dans /var/lib/dpkg .

Je n'ai jamais vu de choses aussi poilues, désolé.

si au début tu ne réussis pas

Je pense tout haut, pardonnez-moi. Le méta-paquet mysql-server contient ou nécessite ces paquets :

libdbd-mysql-perl
libdbi-perl
libhtml-template-perl
libnet-daemon-perl
libplrpc-perl
mysql-client-5.1
mysql-client-core-5.1
mysql-server
mysql-server-5.1
mysql-server-core-5.1

Les méta-données pour la gestion des paquets sont délicieusement découplées, il y a des dépôts centraux mais les paquets sont autonomes. /var/cache/apt/archives c'est là où *.deb les fichiers qui ont été installés en direct.

Tout d'abord, forcez dpkg à oublier ces paquets (au risque de ne pas supprimer certains fichiers que nous allons remplacer de toute façon).

for i in mysql-server-core-5.1 mysql-server-5.1 ... ; do
    sudo dpkg -r --force-remove-reinstreq $i
done

Obtenez ensuite les fichiers .deb nécessaires pour une installation complète :

sudo apt-get install --download-only mysql-server

et ensuite essayer de les installer un par un :

cd /var/cache/apt/archives
sudo dpkg -i mysql-server-core-5.1_5.1.41-3ubuntu12.3_i386.deb

si vous avez des problèmes à cet endroit, essayez :

sudo dpkg -D77777 -i mysql-server-core-5.1... > 2>&1 /tmp/dpkg.log.$$

Essayez de trouver les lignes pertinentes parmi les millions de lignes du fichier journal et postez-les ici. Bonne chance et bon courage.

2voto

Andrew Points 21

J'avais ce problème parce qu'il s'agissait d'une copie d'une VM et que j'avais changé l'adresse IP du serveur mais pas l'adresse de liaison dans le fichier my.cnf. Une fois que j'ai modifié l'adresse de liaison pour qu'elle corresponde, la mise à jour ne s'est pas interrompue et s'est terminée avec succès.

1voto

Puru Choudhary Points 11

J'ai rencontré le même problème et j'ai passé plus d'une journée à le déboguer.

Quand j'ai supprimé le répertoire de la base de données, /var/lib/mysql/ l'installation s'est déroulée sans problème.

1voto

zaTricky Points 298

J'avais exactement le même problème mais aucune des solutions existantes ne semblait appropriée. Forcer une désinstallation est censé être inutile dans tout *nix et n'est définitivement pas KISS. Dans mon cas, j'ai découvert que la cause était simple. MySQL refusait de démarrer car il était toujours en cours d'exécution ! Quand apt a essayé d'arrêter MySQL, il était actif et ne s'était jamais vraiment arrêté.

Comme toujours, assurez-vous d'avoir des sauvegardes !

Arrêtez le service :

sudo service mysql stop

Assurez-vous que le service n'est plus en cours d'exécution :

sudo ps ax | grep mysql

S'il fonctionne toujours, laissez-lui du temps :

sudo kill <pid>

Mais finalement, si c'est toujours en courant, vous devez le tuer agressivement :

sudo kill -9 <pid>

Une fois que vous avez confirmé qu'il n'est plus en cours d'exécution, vous pouvez poursuivre la mise à jour.

Une fois la mise à jour terminée, surtout si vous avez dû tuer -9, n'oubliez pas d'exécuter mysqlcheck pour vous assurer que ce qui a pu empêcher le service de s'arrêter n'est pas une table corrompue ou cassée. Assurez-vous également d'avoir des sauvegardes régulières (et assurez-vous que ces sauvegardes fonctionnent vraiment !).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X