Recientemente hice una nueva instalación de Ubuntu 16.04. También instalé mysql-servery mysql-client(su versión predeterminada 5.7.12) a través de apt-get install.
Debido a que 5.7.12 mostraba algunos problemas, decidí desinstalarlo. Lo intenté apt-get remove mysql-server mysql-clientprimero pero vi que a los artefactos les gustaba /etc/mysqly /var/lib/mysqlno me los quitaban.
Entonces lo intenté apt-get --purge removed mysql-server mysql-client, pero aún no hay diferencia.
Entonces, los eliminé manualmente (a través de rm -rf). También eliminé manualmente todos los *mysql*archivos /usr/que vinieron de cualquier mysql-*paquete de dependencia como mysql-common.
Sin embargo, ahora, cuando deseo volver a instalar mysql-server and -client, descubro que no puedo.
De hecho, ¡ahora estoy en un estado donde no puedo apt-get remove mysql-serverni apt-get install mysql-server!
¿Cómo soluciono la situación en la que estoy? Si mis metadatos del repositorio de paquetes local se han dañado, ¿cómo lo reparo?
Odiaría reinstalar todo el SO bendito con todas mis otras aplicaciones y entorno, una vez más solo por eso mysql-server.
El siguiente, por ejemplo, es el error que obtengo cuando intento eliminar mysql-server:
$ apt-get remove mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
mysql-server
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 159 kB disk space will be freed.
Do you want to continue? [Y/n]
(Reading database ... 237601 files and directories currently installed.)
Removing mysql-server (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
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
Errors were encountered while processing:
mysql-server-5.7
E: Sub-process /usr/bin/dpkg returned an error code (1)
Y cuando intento instalar, me sale este error:
$ apt-get -f install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
mysql-server
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/10.1 kB of archives.
After this operation, 159 kB of additional disk space will be used.
Selecting previously unselected package mysql-server.
(Reading database ... 237599 files and directories currently installed.)
Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-server (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
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.
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
Aquí está la salida de apt-get install -f:
$ apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
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.
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

mysql-server-5.7está en mal estado, intente volver a instalarlo:sudo apt-get install --reinstall mysql-server-5.7.... invoke-rc.d: initscript mysql, action "start" failed. ...que obtengo con otros tipos de comandos de instalación.sudo apt-get remove --purge mysql-server-5.7. Tenga en cuenta que esto es realmente de lomysql-server-5.7que estamos hablando, nomysql-server.Respuestas:
Editado el 10 de enero de 2017 : esta es una revisión importante de esta publicación para corregir problemas graves en esta publicación.
El error de corazón
El problema es que el paquete todavía está en el sistema en un estado medio instalado y medio configurado y debe eliminarse explícitamente.
Lo que realmente dice es que el paquete
mysql-server-5.7es una dependenciamysql-server, ya está instalado, pero no está configurado. Por lo tanto, debepurgeeliminar las migas de pan que dejómysql-server-5.7.Razón fundamental
Cuando instala el software usando
apt, también maneja automáticamente las dependencias por usted.Cuando elimina ciertos paquetes, es posible que no maneje esas mismas dependencias. En el caso de esta publicación, esa dependencia es
mysql-server-5.7.Puede verificar para ver el estado de un paquete emitiendo el siguiente comando.
Por lo general, si ve el código
unorca la izquierda del nombre del paquete, podrá saber si en realidad es un paquete roto.Cuando experimenté este problema, fue con
libapache2-mod-phpylibapache2-mod-php7.0. Esta fue mi salida.En mi caso, afirmó que el estado de mi paquete es desconocido y que no está instalado (el código
un) en mi sistema.Cuando le dices
aptaremovealgo, que puede dejar paquetes, archivos de configuración y otros artículos que pueden ser problemáticos durante las instalaciones automatizadas.Cuando le dices
aptapurgealgo que hace, lo mejor es eliminar las migas de pan queremovepuedan haber quedado atrás.Originalmente dije que asumí que el proceso todavía se estaba ejecutando, pero lo más probable es que estuviera inactivo o muerto.
La mejor manera de verificar si el servicio está interfiriendo con la eliminación de su paquete es verificar primero ese servicio.
1) Investigar el
mysqlservicioUsando el error del sistema que nos dio
apt, podemos usarlosystemctlpara investigar el error al verificar el estado delmysqlservicioEn nuestro caso, queremos ver si mysql se está ejecutando, así que podemos escribir
Debería ver esta salida si el servicio se está ejecutando
nota: si el servicio está inactivo, verá un breve mensaje que indica que no hay ningún servicio con ese nombre ejecutándose y luego vaya al paso 3.
2) Detener el
mysqlservicio usandosystemctlnota: [patrón] debe ser el nombre listado por
serviceoinitctl. La razón que usopatternes porquesystemctlusa la coincidencia de expresiones regulares, así que tenga cuidado si debe usar elkillargumento.donde
patternrepresenta el demonio mysql / nombre del servicio. si parar no funciona intentePor ejemplo
3) Desinstalar / purgar
mysqlSi necesita purgar totalmente, asegúrese de que el servicio o proceso se detenga primero y luego asegúrese de eliminar los archivos y directorios correctos.
Nota: Asegúrese de estar apuntando a la
mysqlversión correcta . Por ejemplo, si usa 5.5, ajuste el número de versión adecuadamente.ADVERTENCIA: ¡ los siguientes pasos eliminarán sus datos! (el primer comando debe ejecutarse para hacer una copia de seguridad)
fuente: ¿Cómo desinstalo MySQL?
4) Reparación de paquetes rotos y manejo de dependencias faltantes
Si los pasos anteriores no funcionaron para usted, es posible que deba ejecutar
aptla--fix-brokenopción para reparar cualquier daño causado.Asegúrese de
apt updateprimero y luegoapt install5) Cuando todo lo demás falla, construye e instálalo
mysqltú mismoSi nada de lo anterior funciona, tendrá que descargar manualmente la fuente, compilar y usar make o bash para instalar desde allí (no es tan doloroso como parece, ya que todo está automatizado).
fuente
rmarchivos que pertenecen a paquetes.sudo rm -rf /var/lib/mysqleliminará todas sus bases de datos en la ubicación predeterminada. ¡Haz una copia de seguridad primero!El problema con la primera publicación es que no puede reconfigurar bien un metapaquete, no para los elementos sql. Debe especificar el elemento de lanzamiento actual.
Decir uso;
Eso debería mostrar una lista de paquetes a saber
"mysql-server-5.7" "mysql-server-core-5.7" o versiones posteriores
luego;
hecho.
fuente
Esta es la solución correcta para ti
Primero, tendrá que eliminar todos los paquetes de mysql-server:
Luego instale:
O puedes hacer:
fuente
yo vi esto
como una pista de que todavía existía un script de inicio erróneo.
Busque
/etc/init.d/mysqly cualquier enlace simbólico a él. Eliminarlos pareció solucionar mis problemas de reinstalación después de la purga.fuente
Este error también ocurrió al cambiar de MySQL a MariaDB ( https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1490071 ).
Los archivos de datos binarios de MySQL no eran compatibles con MariaDB, así que volví a MySQL porque no tuve tiempo de meterme con mysqldump.
Primero tuve que alejar los datos de MariaDB
/var/lib/mysql, luego instalar MySQL y luego mover mis datos originales/var/lib/mysql-5.7(esta copia de seguridad se creó automáticamente antes del error) a/var/lib/mysql.fuente
¡Intente
apt-get -f installarreglar su paquete SQL roto y si todavía tiene problemas con el administrador de paquetes, descargue el código fuente del servidor SQL y compílelo! Pero pruebe el comando anterior y también usedpkg -l | grep sqlpara descubrir que el administrador de paquetes aún cree que es SQL o no ...fuente
apt-get -f installsolo, sin especificar un nombre de paquete.apt-get install -f, sin cambios.