Mi actualización general fue bien, pero me queda un problema críticamente persistente de que mysql-server no puede instalarse solo, y nada de lo que estoy intentando hace que funcione.
Este es el error que veo cuando intento instalarlo / reinstalarlo:
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)
He intentado eliminarlo por completo, aunque al hacerlo intenta instalar MariaDB debido a las dependencias (?). Cualquier sugerencia sobre lo que puedo hacer para solucionar esto sería bienvenida.
EDITAR: Parece que no soy el único: https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1573279
Respuestas:
Las instrucciones que @ andrew-beerman publicaron están en el camino correcto, aunque no me resultan claras y parecen recomendar más de lo necesario. Reuní la respuesta de lo anterior y una publicación útil en el hilo del error.
Estos son los pasos que tomé para corregir esto:
Una copia de seguridad
my.cnf file
en/etc/mysql
y eliminar o cambiar el nombreEliminar la carpeta
/etc/mysql/mysql.conf.d/
usandoVerifique que no tenga un
my.cnf
archivo escondido en otro lugar (¡lo hice en mi directorio de inicio!) O en/etc/alternatives/my.cnf
usoCopia de seguridad y eliminar
/etc/mysql/debian.cnf
archivos (no estoy seguro si es necesario, pero por si acaso)En caso de que su syslog muestre un error como "mysqld: No se puede leer el directorio de '/etc/mysql/conf.d/'", cree un enlace simbólico:
Entonces el servicio debería poder comenzar
sudo service mysql start
.¡Eso lo hizo funcionar!
fuente
sudo find / -name "my.cnf"
podría ser útil.Hoy tuve el mismo problema, después de probar muchas soluciones, descubrí que el problema era el comando
sudo systemctl disable mysql.service
que usé para deshabilitar el inicio automático de MySQL, así que para que funcione, volví a habilitar el servidor MySQL usando el comandosudo systemctl enable mysql.service
y ejecuté nuevamente el proceso de actualización y Terminó perfectamente.fuente
sudo systemctl enable mysql.service
y después de esosudo apt install -f
.Su mensaje de error contiene esta línea:
Sin embargo, esto
installed post-installation script
no se menciona por su nombre. Después de mucho retocar, descubrí que su nombre es (en mi caso)/var/lib/dpkg/info/mysql-server-5.7.postinst
.Abra este archivo con
sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
o con su editor preferido.En la parte superior, cambie la línea 3 (más o menos):
set -e
aset -x
, guarde el archivo. (la opción-e
es "salir en caso de errores",-x
significa "mostrar comando ejecutado explícitamente", presumiblemente)Ejecutar
sudo dpkg --configure -a --log /tmp/dpkg.log
(la opción --log es opcional). También puede simplemente ejecutarapt upgrade
si sabe que será el único paquete que se actualizará.Ahora obtienes resultados detallados del
mysql-server-5.7.postinst
script bash, y puedes descubrir qué está mal.En mi caso , intentó (re) ejecutar sin éxito
mysql_upgrade
, pero eso no fue necesario para mi instalación personalizada de mysql. Estaba seguro de haberlo ejecutado manualmente antes, con éxito, y todo estaba bien.Así que comenté la línea 321 (para versiones anteriores de mysqld, prueba la línea 281),
#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?
y el comando que falló antes
sudo apt upgrade
(ejecútelo nuevamente), finalizó con éxito y dpkg eliminó el estado de error de este paquete.Ahora se puede retroceder el
set -x
queset -e
(mencionado anteriormente). Y, opcionalmente, descomente la línea mysql-upgrade.Es posible que se requiera trabajo adicional si ha movido su partición de datos mysql a una ubicación no estándar. Moví el mío
/var/lib/mysql/data
a una unidad diferente a través del enlace simbólico. Entonces es posible que deba eliminar el enlace simbólico temporalmente, antes de lapostinst
manipulación del script. Luego, vuelva a crearlo después de ejecutar la actualización del paquete.Después de la próxima actualización de la versión menor del paquete de debian mysqld, este problema con el
/var/lib/dpkg/info/mysql-server-5.7.postinst
script puede aparecer nuevamente.fuente
set -e
pude resolver el problema exacto: MySQL no tenía acceso para el usuario del sistema ubuntu especificado en/etc/mysql/debian.cnf
. Así que agregué este usuario a MySQL y otorgué privilegios, corrídpkg
nuevamente y funcionóLas instrucciones aquí lo arreglaron en mi servidor: https://bugs.mysql.com/bug.php?id=72722
fuente
dpkg -l | grep mysql
. Me ayudó a entender la dirección.sudo apt-get purge <pkg-name>
que lo arreglé con una edición pero: utilicé caracteres unicode para el<
porque de lo contrario no se mostraría. Se advirtió copia pegando este comandoEn mi caso, con strace, vi que / var / run / mysqld / no existía y mysqld no puede crear el archivo mysqld.sock.
Estos comandos resolvieron mi problema:
Ahora:
Y mysql funciona de nuevo :)
fuente
En mi caso, podría resolver el problema agregando
a
/etc/apparmor.d/local/usr.sbin.mysqld
Para obtener más detalles, eche un vistazo a mi respuesta (por ChristophS) en stackoverflow.
fuente
Tuve el mismo problema. Intenté reinstalar mysql varias veces, pero no tuve éxito.
Me di cuenta de que el problema para mí era que ya se estaba ejecutando otro proceso mysql.
En detalles:
Después de leer cuidadosamente, inicie sesión
/var/log/mysql/error.log
y encontré:Parece que otra aplicación ya estaba usando el puerto.
Lo revisé usando
ps -aux | grep 3306
:Y maté el proceso en ejecución
sudo kill -15 14706
Entonces comencé mysql:
/etc/init.d/mysql start
¡Finalmente mysql funciona para mí! Espero que ayude a alguien.
fuente
Ninguna de las respuestas en esta página funcionó para mí.
Terminé yendo a la página de descargas de Oracle , descargando
mysql-apt-config_0.8.8-1_all.deb
e instalando MySQL desde el repositorio de Oracle:fuente
isntall
->install
error tipográfico. Estúpido SO no me permite corregir un personaje.He tenido el problema en algunos servidores ahora. La solución fue ejecutar apt install phpmyadmin --reinstall
que resolvió lo anterior (sin necesidad de tocar mysql después)
fuente