Error al instalar mySql en Ubuntu 16.04

15

He estado siguiendo las instrucciones en esta página para instalar mysql en Ubuntu 16.04.

Estoy a la mitad de esa página en la sección titulada "Instalación y configuración de MySQL" y ejecuto el comando sudo apt-get install mysql-server. Sin embargo, he encontrado un error, aquí está la salida de ese error en mi terminal:

Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 41515 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-common (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-client-5.7.
Preparing to unpack .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-client-5.7 (5.7.12-0ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-common (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Selecting previously unselected package mysql-server-5.7.
(Reading database ... 41563 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-server-5.7 (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-server (5.7.12-0ubuntu1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-client-5.7 (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
mysql_upgrade: Got error: 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
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
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Esta es la primera vez que configuro un servidor y también instalo mysql. No estoy seguro de si esta puede ser una posible causa del error, pero anteriormente intenté instalar mysql pero no seguí el proceso LAMP (soy nuevob descubriendo esto) y no tuve éxito y tuve que desinstalarlo.

Darren Haynes
fuente
Bienvenido a AskUbuntu. En su registro hay una línea Access denied for user 'debian-sys-maint'@'localhost'. ¿De dónde viene ese usuario? No esperaría encontrarlo en un sistema Ubuntu.
Guntbert
Hola, Guntbert: con un poco de búsqueda, parece su debian.cnfarchivo. Encontré este stackoverflow.com/questions/11644300/… - y mirando la respuesta que obtuvo 47 puntos (no la respuesta aceptada) hay una falta de coincidencia de contraseña. Lo estoy probando, sin éxito, ¡ya que no sé qué contraseña es qué!
Darren Haynes
Esta respuesta me resuelve el problema sin purgar mysql: /ubuntu//a/793545/597698
Elkana Bardugo

Respuestas:

17

Esta respuesta también responde a la actualización 16.04 que rompió el servidor mysql, pero no puedo responder ya que el administrador lo bloqueó a 10 reputación.

El error en APT ocurre durante la actualización de Ubuntu a 16.04 (xenial) y Mysql de 5.5 a 5.7. Debido a algunos problemas de empaquetado, la actualización APT termina en el limbo porque el script posterior a la instalación de Mysql-server-5.7 no se completa.

Para resolver el problema, intente estos pasos:

  1. apt purge mysql-server y apt autoremovepara limpiar todos los rastros del antiguo MYSQL. Los datos de la base de datos no serán destruidos.
  2. Eliminar todo del /etc/mysqldirectorio.
  3. Verifique que no queden paquetes viejos de Mysql instalados: dpkg -l | grep mysql
  4. apt install mysql-server instalar

Si estos pasos terminan en la misma instalación incompleta, intente el siguiente paso:

  1. Tail -n 20 /var/log/mysql/error.log
  2. Los errores podrían ser a. contraseña incorrecta para debian-sys-maint b. no hay memoria para Innodb

Resuelva 2a: necesita actualizar las tablas del sistema Mysql de 5.5 a 5.7

Edite my.cnf para incluir debajo de '[mysqld]' la línea "skip-grant-tables" service mysql start, ymysql_upgrade --force -u root -p

Resuelva 2b: tiene poca memoria para el grupo Mysql Innodb (¿está en un servidor de tamaño micro?)

Edite my.cnf para incluir bajo '[mysqld]' la línea innodb_buffer_pool_size = 20M

el grupo innodb predeterminado es 128M, que es ajustado en una VM de 512M

Para borrar el error APT, vuelva a realizar la instalación posterior

dpkg --configure -a
Kaceo
fuente
¿Eliminará bases de datos o permanecerá seguro?
Thirumal
5

Eliminar completamente mysql y reinstalar fue la solución a la que finalmente llegué. Aunque había intentado desinstalar y reinstalar una vez sin éxito (lo que me llevó a hacer esta pregunta). Intenté una desinstalación más completa después de encontrar el consejo en esta página: desinstalar MySQL completamente

Seguir las instrucciones de desinstalación allí y reinstalar resolvió el problema.

Darren Haynes
fuente
5

Otra buena solución:

sudo apt-get purge mysql* && sudo apt-get install mysql-server
Pat McSherry
fuente
3

Esto funcionó para mí:

sudo apt-get remove --purge mysql*

¡Este comando le preguntará si desea ELIMINAR sus bases de datos/var/lib/mysql y también eliminará todas las demás instancias de mysql!

¡ Haga primero una COPIA DE SEGURIDAD de sus bases de datos!

Después de esto, podría instalar la base de datos emitiendo el comando:

sudo apt-get install mysql-server
Michal Przybylowicz
fuente
1

Intente eliminar todos los paquetes y archivos, luego reinstale el "servidor mysql"

sudo apt-get remove --purge mysql-\*
sudo rm -rf /var/lib/mysql

sudo apt-get install mysql-server 
Spl2nky
fuente
1

Primero debe eliminar todos los paquetes de mysql-server:

sudo rm -rf /var/lib/mysql

Luego instale:

sudo apt-get install lamp-server^

O puedes hacer:

sudo apt-get install mysql-server
Tarunkant Gupta
fuente
1
No publiques rm -rf sin decir qué tipo de información destruirá este comando.
Brian Ng