Erro ao instalar o mySql no Ubuntu 16.04

15

Eu tenho seguido as instruções nesta página para instalar o mysql no Ubuntu 16.04.

Estou no meio da página, na seção intitulada "Instalação e Configuração do MySQL" e executo o comando sudo apt-get install mysql-server. Eu encontrei um erro no entanto, aqui está a saída desse erro no meu 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 é minha primeira vez configurando um servidor e também instalando o mysql. Não tenho certeza se isso pode ser uma possível causa do erro, mas eu já havia tentado instalar o mysql, mas não seguia o processo LAMP (estou tentando descobrir isso) e isso não teve êxito e tive que desinstalar.

Darren Haynes
fonte
Bem-vindo ao AskUbuntu. No seu log, há uma linha Access denied for user 'debian-sys-maint'@'localhost'. De onde vem esse usuário? Eu não esperaria encontrá-lo em um sistema Ubuntu.
Guntbert #
Oi Guntbert - com um pouco de pesquisa, parece seu debian.cnfarquivo. Encontrei este stackoverflow.com/questions/11644300/… - e, olhando para a resposta que obteve 47 pontos (não a resposta aceita), há uma incompatibilidade de senha. Estou tentando - sem sucesso, pois não sei qual é a senha!
Darren Haynes
Esta resposta resolve o problema para mim sem mysql purga: /ubuntu//a/793545/597698
Elkana Bardugo

Respostas:

17

Esta resposta também está em resposta à atualização 16.04 quebrou o mysql-server, mas que não posso responder porque o administrador bloqueou a reputação 10.

O erro no APT ocorre durante a atualização do Ubuntu para 16.04 (xenial) e Mysql de 5.5 para 5.7. Devido a alguns problemas de empacotamento, a atualização do APT termina no limbo porque o script de pós-instalação do Mysql-server-5.7 falha ao concluir.

Para resolver o problema, tente estas etapas:

  1. apt purge mysql-server e apt autoremovepara limpar todos os vestígios do antigo MYSQL. Os dados do banco de dados não serão destruídos.
  2. Remova tudo do /etc/mysqldiretório.
  3. Verifique se não há pacotes antigos do Mysql instalados: dpkg -l | grep mysql
  4. apt install mysql-server para instalar

Se essas etapas terminarem na mesma instalação incompleta, tente a próxima etapa:

  1. Tail -n 20 /var/log/mysql/error.log
  2. Os erros podem ser a. senha incorreta para debian-sys-maint b. sem memória para o Innodb

Solução 2a: você precisa atualizar as tabelas do sistema Mysql de 5.5 para 5.7

Edite my.cnf para incluir em '[mysqld]' a linha "skip-grant-tables" service mysql start, emysql_upgrade --force -u root -p

Solução 2b: Você está com pouca memória para o pool do Mysql Innodb (você está em um servidor de tamanho micro?)

Edite my.cnf para incluir em '[mysqld]' a linha innodb_buffer_pool_size = 20M

o pool innodb padrão é 128M, que é restrito em uma VM de 512M

Para limpar o erro do APT, faça a instalação posterior novamente

dpkg --configure -a
Kaceo
fonte
Ele excluirá bancos de dados ou permanecerá seguro?
Thirumal
5

Remover completamente o mysql e reinstalar foi a solução que eu encontrei. Embora eu tenha tentado desinstalar e reinstalar uma vez sem êxito (o que me levou a fazer esta pergunta). Tentei uma desinstalação mais completa depois de encontrar o conselho nesta página: Desinstalar completamente o MySQL

Seguir as instruções de desinstalação e reinstalar resolveu o problema.

Darren Haynes
fonte
5

Outra boa solução:

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

Isso funcionou para mim:

sudo apt-get remove --purge mysql*

Este comando perguntará se você deseja remover seus bancos de dados/var/lib/mysql e também removerá todas as outras instâncias do mysql!

Portanto, faça um BACKUP dos seus bancos de dados primeiro!

Depois disso, eu poderia instalar o banco de dados emitindo o comando:

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

Tente remover todos os pacotes e arquivos e, em seguida, reinstale o "mysql-server"

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

sudo apt-get install mysql-server 
Spl2nky
fonte
1

Primeiro você remove todos os pacotes do mysql-server:

sudo rm -rf /var/lib/mysql

Então instale:

sudo apt-get install lamp-server^

Ou você pode fazer:

sudo apt-get install mysql-server
Tarunkant Gupta
fonte
11
Por favor, não poste rm -rf sem dizer que tipo de informação esse comando destruirá.
Brian Ng