Minha atualização geral correu bem, mas fiquei com um problema criticamente persistente de o mysql-server não poder se instalar, e nada do que estou tentando faz com que funcione.
Este é o erro que vejo ao tentar instalar / reinstalar:
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)
Eu tentei removê-lo completamente, embora isso tente instalar o MariaDB devido a dependências (?). Qualquer sugestão sobre o que posso fazer para corrigir isso seria bem-vinda.
Edição: Parece que eu não sou o único: https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1573279
Respostas:
As instruções publicadas por andrew-beerman estão no caminho certo, embora não sejam muito claras para mim e pareçam recomendar mais do que o necessário. Eu reuni a resposta acima e um post útil no tópico do bug.
Estas são as etapas que tomei para corrigir isso:
Faça backup do seu
my.cnf file
in/etc/mysql
e remova ou renomeie-oRemova a pasta
/etc/mysql/mysql.conf.d/
usandoVerifique se você não tem um
my.cnf
arquivo escondido em outro lugar (eu fiz no meu diretório pessoal!) Ou em/etc/alternatives/my.cnf
usoFaça backup e remova
/etc/mysql/debian.cnf
arquivos (não tenho certeza se necessário, mas apenas no caso)Caso seu syslog mostre um erro como "mysqld: Não é possível ler o diretório '/etc/mysql/conf.d/'", crie um link simbólico:
Em seguida, o serviço deve poder começar
sudo service mysql start
.Isso deu certo!
fonte
sudo find / -name "my.cnf"
pode ser útil.Hoje eu tive o mesmo problema, depois de tentar muitas soluções, descobri que o problema era o comando
sudo systemctl disable mysql.service
usado para desativar a inicialização automática do MySQL. Para fazê-lo funcionar, reativei novamente o servidor MySQL usando o comandosudo systemctl enable mysql.service
e execute novamente o processo de atualização. terminou perfeitamente.fonte
sudo systemctl enable mysql.service
e depois dissosudo apt install -f
.Sua mensagem de erro contém esta linha:
No entanto, isso
installed post-installation script
não é mencionado pelo nome. Depois de muitos ajustes, descobri que seu nome é (no meu caso)/var/lib/dpkg/info/mysql-server-5.7.postinst
.Abra este arquivo com
sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
seu editor preferido ou com ele .Na parte superior, altere a linha 3 (aproximadamente):
set -e
paraset -x
, salve o arquivo. (a opção-e
é "sair com erros",-x
significa "mostrar explicitamente o comando executado", presumivelmente)Execute
sudo dpkg --configure -a --log /tmp/dpkg.log
(a opção --log é opcional). Você também pode simplesmente executarapt upgrade
se souber que será o único pacote que será atualizado.Agora você obtém uma saída detalhada do
mysql-server-5.7.postinst
script bash e pode descobrir o que está errado.No meu caso, ele tentou (re) executar sem êxito
mysql_upgrade
, mas isso não era necessário para minha instalação personalizada do mysql. Eu tinha certeza de executá-lo manualmente antes, com sucesso, e tudo estava bem.Então eu comentei a linha 321 (para versões mais antigas do mysqld, tente a linha 281),
#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?
e o comando que falhou antes
sudo apt upgrade
(execute novamente), foi concluído com êxito e o dpkg removeu o status de erro deste pacote.Agora você pode voltar
set -x
aoset -e
(mencionado acima). E, opcionalmente, descomente a linha mysql-upgrade.Pode ser necessário um trabalho extra se você tiver movido sua partição de dados mysql para um local fora do padrão. Mudei o meu
/var/lib/mysql/data
para uma unidade diferente via link simbólico. Talvez seja necessário remover o link simbólico temporariamente, antes dapostinst
manipulação do script. Em seguida, recrie-o após executar a atualização do pacote.Após a próxima atualização da versão secundária do pacote debian mysqld, esse problema com o
/var/lib/dpkg/info/mysql-server-5.7.postinst
script pode aparecer novamente.fonte
set -e
eu consegui resolver o problema exato - o MySQL não tinha acesso ao usuário do sistema ubuntu especificado em/etc/mysql/debian.cnf
. Então, eu adicionei esse usuário ao MySQL e concedi privilégios, corridpkg
novamente e funcionou!As instruções aqui o corrigiram no meu servidor: https://bugs.mysql.com/bug.php?id=72722
fonte
dpkg -l | grep mysql
. Isso ajudou a entender a direção.sudo apt-get purge <pkg-name>
corrigido com uma edição, mas: usei caracteres unicode para o<
porque, caso contrário, ele não seria exibido. Ser avisado copiar colando este comandoNo meu caso, com strace, vi que / var / run / mysqld / não existia e o mysqld não pode criar o arquivo mysqld.sock.
Estes comandos resolveram o meu problema:
Agora:
E o mysql funciona novamente :)
fonte
No meu caso, eu poderia resolver o problema adicionando
para
/etc/apparmor.d/local/usr.sbin.mysqld
Para mais detalhes, dê uma olhada na minha resposta (de ChristophS) em stackoverflow.
fonte
Eu tive o mesmo problema. Tentei reinstalar o mysql várias vezes, mas não tive sucesso.
Eu descobri que o problema para mim era que outro processo mysql já estava em execução.
Em detalhes:
Depois de ler cuidadosamente, efetue login
/var/log/mysql/error.log
e descobri:Parece que outro aplicativo já estava usando a porta.
Eu verifiquei usando
ps -aux | grep 3306
:E eu matei o processo em execução
sudo kill -15 14706
Então eu iniciei o mysql:
/etc/init.d/mysql start
Finalmente o mysql funciona para mim! Espero que ajude alguém.
fonte
Nenhuma das respostas nesta página funcionou para mim.
Acabei indo para a página de downloads do Oracle , baixando
mysql-apt-config_0.8.8-1_all.deb
e instalando o MySQL a partir do Oracle repo:fonte
isntall
->install
erro de digitação. O estúpido SO não me permite corrigir um caractere.Eu tive o problema em alguns servidores agora A correção era executar o apt install phpmyadmin --reinstall
que resolveu o problema acima (sem precisar tocar no mysql depois)
fonte