Ma mise à niveau globale s’est bien déroulée, mais il me reste un problème critique: je ne parviens pas à installer mysql-server, et rien de ce que j’essaie ne permet de le faire fonctionner.
C'est l'erreur que je vois en essayant d'installer / réinstaller:
Setting up mysql-server-5.7 (5.7.11-0ubuntu6) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-server-5.7; however:
Package mysql-server-5.7 is not configured yet.
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
J'ai essayé de le supprimer complètement, bien que j'aie essayé d'installer MariaDB à cause de dépendances (?). Toute suggestion sur ce que je peux faire pour y remédier serait la bienvenue.
EDIT: On dirait que je ne suis pas le seul: https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1573279
Réponses:
Les instructions postées par @ andrew-beerman sont sur la bonne voie, bien qu'elles ne me soient pas tout à fait claires et semblent recommander plus que nécessaire. J'ai rassemblé la réponse de ce qui précède et un article utile dans le fil de discussion du bogue.
Voici les étapes que j'ai prises pour corriger ceci:
Sauvegardez votre
my.cnf file
dans/etc/mysql
et supprimez-le ou renommez-leSupprimer le dossier en
/etc/mysql/mysql.conf.d/
utilisantVérifiez que vous n'avez pas de
my.cnf
fichier caché ailleurs (ce que j'ai fait dans mon répertoire personnel!) Ou en cours d'/etc/alternatives/my.cnf
utilisationSauvegarder et supprimer des
/etc/mysql/debian.cnf
fichiers (pas sûr si nécessaire, mais juste au cas où)Dans le cas où votre syslog affiche une erreur du type "mysqld: impossible de lire le répertoire" /etc/mysql/conf.d/ ", créez un lien symbolique:
Ensuite, le service devrait pouvoir commencer
sudo service mysql start
.Cela a fonctionné!
la source
sudo find / -name "my.cnf"
pourrait être utile.Aujourd'hui , je suis le même problème, après avoir essayé de nombreuses solutions que j'ai trouvé que le problème était la commande
sudo systemctl disable mysql.service
que je l' ai utilisé pour désactiver démarrage automatique MySQL, afin de l' obtenir je travaille réactivées nouveau serveur MySQL en utilisant la commandesudo systemctl enable mysql.service
et exécutez à nouveau le processus de mise à niveau et ça s'est terminé parfaitement.la source
sudo systemctl enable mysql.service
et après cette coursesudo apt install -f
.Votre message d'erreur contient cette ligne:
Cependant, cela
installed post-installation script
n'est pas mentionné nommément. Après beaucoup de bricolage, j'ai découvert que son nom est (dans mon cas)/var/lib/dpkg/info/mysql-server-5.7.postinst
.Ouvrez ce fichier avec
sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
ou votre éditeur préféré.En haut, changez la ligne 3 (ou plus):
set -e
pourset -x
enregistrer le fichier. (option-e
est "exit on errors",-x
signifie "montrer explicitement la commande exécutée", vraisemblablement)Exécuter
sudo dpkg --configure -a --log /tmp/dpkg.log
(l'option --log est facultative). Vous pouvez également simplement exécuterapt upgrade
si vous savez que ce sera le seul package qui sera mis à niveau.Vous obtenez maintenant une sortie
mysql-server-5.7.postinst
commentée du script bash et vous pouvez déterminer ce qui ne va pas.Dans mon cas, il a essayé sans succès de (ré) exécuter
mysql_upgrade
, mais cela n'était pas nécessaire pour mon installation personnalisée de mysql. J'étais sûr que je l'avais exécuté manuellement auparavant, avec succès, et tout allait bien.J'ai donc fait un commentaire sur la ligne 321 (pour les anciennes versions de mysqld, essayez la ligne 281),
#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?
et la commande qui a échoué auparavant
sudo apt upgrade
(exécutez-la à nouveau) s'est terminée avec succès et dpkg a supprimé le statut d'erreur pour ce paquet.Maintenant, vous pouvez réduire le
set -x
àset -e
(mentionné ci-dessus). Et éventuellement décommentez la ligne mysql-upgrade.Un travail supplémentaire peut être nécessaire si vous avez déplacé votre partition de données mysql vers un emplacement non standard. J'ai déplacé le mien d'
/var/lib/mysql/data
un disque différent via un lien symbolique. Ensuite, vous devrez peut-être supprimer le lien symbolique temporairement, avant lapostinst
manipulation du script. Puis, recréez-le après avoir exécuté la mise à niveau du paquet.Après la prochaine mise à niveau mineure du paquet mysqld Debian, ce problème avec le
/var/lib/dpkg/info/mysql-server-5.7.postinst
script peut apparaître à nouveau.la source
set -e
j'ai pu travailler le problème exact - MySQL n'a pas accès à l'utilisateur du système de ubuntu spécifié dans/etc/mysql/debian.cnf
. J'ai donc ajouté cet utilisateur à MySQL et lui avoir accordé des privilèges. J'aidpkg
recommencé et cela a fonctionné!Les instructions ici corrigées sur mon serveur: https://bugs.mysql.com/bug.php?id=72722
la source
dpkg -l | grep mysql
. Cela a aidé à comprendre la direction.sudo apt-get purge <pkg-name>
corrigée par une modification, mais: j’ai utilisé des caractères unicode pour la<
sinon, elle ne s’afficherait pas. Soyez prévenu copie en collant cette commandeDans mon cas, avec strace, j'ai vu que / var / run / mysqld / n'existait pas et que mysqld ne pouvait pas créer le fichier mysqld.sock.
Ces commandes ont résolu mon problème:
Maintenant:
Et mysql fonctionne à nouveau :)
la source
Dans mon cas, je pourrais résoudre le problème en ajoutant
à
/etc/apparmor.d/local/usr.sbin.mysqld
Pour plus de détails, jetez un oeil à ma réponse (de ChristophS) à stackoverflow.
la source
J'ai eu le même problème. J'ai essayé de réinstaller mysql plusieurs fois, mais sans succès.
J'ai compris que le problème pour moi était qu'un autre processus mysql était déjà en cours d'exécution.
En détails:
Après avoir lu attentivement, connecte-toi
/var/log/mysql/error.log
et trouve:On dirait qu'une autre application utilisait déjà le port.
Je l'ai vérifié en utilisant
ps -aux | grep 3306
:Et j'ai tué le processus en cours
sudo kill -15 14706
Puis j'ai démarré mysql:
/etc/init.d/mysql start
Enfin, mysql fonctionne pour moi! J'espère que ça aide quelqu'un.
la source
Aucune des réponses sur cette page n'a fonctionné pour moi.
J'ai fini par aller sur la page des téléchargements Oracle , télécharger
mysql-apt-config_0.8.8-1_all.deb
et installer MySQL à partir du référentiel Oracle:la source
isntall
->install
faute de frappe. Stupid SO ne me permet pas de corriger un caractère.J'ai eu le problème sur quelques serveurs maintenant Le correctif était de lancer apt install phpmyadmin --reinstall
ce qui a résolu ce qui précède (sans avoir besoin de toucher mysql par la suite)
la source