mysql falha ao iniciar erros bash_completion

2

Então, após atualizar meu sistema debian, o mysql não inicia mais com o comando "service mysql start". Eu recebo:

Job for mysql.service failed. See 'systemctl status mysql.service' and 'journalctl -xn' for details. linksys:/home/users/stan# journalctl -xn
-- Logs begin at Mon 2014-07-28 10:03:56 PDT, end at Mon 2014-07-28 12:07:07 PDT.
-- Jul 28 12:07:07 linksys mysql[5509]: -su: 89: /usr/share/bash-completion/bash_completion: complete: not found 
   Jul 28 12:07:07 linksys mysql[5509]: -su: 92: /usr/share/bash-completion/bash_completion: complete: not found 
   Jul 28 12:07:07 linksys mysql[5509]: -su: 101: /usr/share/bash-completion/bash_completion: Syntax error: "(" unexpected (expec 
   Jul 28 12:07:07 linksys su[5536]: pam_unix(su:session): session closed for user mysql
   Jul 28 12:07:07 linksys systemd[1]: mysql.service: control process exited, code=exited status=2
   Jul 28 12:07:07 linksys systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.
-- Subject: Unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mysql.service has failed.

Olhando para /etc/init.d/mysql , parece que o comando para iniciar o mysql é: su - mysql -s /bin/sh -c "/usr/bin/mysqld_safe > /dev/null 2>&1 &" , mas recebo mais erros de bash_completion:

-su: 29: /usr/share/bash-completion/bash_completion: [[: not found
-su: 35: /usr/share/bash-completion/bash_completion: [[: not found
-su: 51: /usr/share/bash-completion/bash_completion: shopt: not found
-su: 57: /usr/share/bash-completion/bash_completion: complete: not found
-su: 62: /usr/share/bash-completion/bash_completion: complete: not found
-su: 65: /usr/share/bash-completion/bash_completion: complete: not found
-su: 68: /usr/share/bash-completion/bash_completion: complete: not found
-su: 71: /usr/share/bash-completion/bash_completion: complete: not found
-su: 74: /usr/share/bash-completion/bash_completion: complete: not found
-su: 77: /usr/share/bash-completion/bash_completion: complete: not found
-su: 80: /usr/share/bash-completion/bash_completion: complete: not found
-su: 83: /usr/share/bash-completion/bash_completion: complete: not found
-su: 86: /usr/share/bash-completion/bash_completion: complete: not found
-su: 89: /usr/share/bash-completion/bash_completion: complete: not found
-su: 92: /usr/share/bash-completion/bash_completion: complete: not found
-su: 101: /usr/share/bash-completion/bash_completion: Syntax error: "(" unexpected (expecting "}")

Nenhum registro em / var / log / mysql /. Alguma idéia?

    
por simon tan 28.07.2014 / 22:01

1 resposta

2

Esta linha:

-su: 29: /usr/share/bash-completion/bash_completion: [[: not found

me diz que / bin / sh não é um shell bash (no Debian moderno, é quase certamente traço), mas está tentando criar um script bash. Portanto, a pergunta que você precisa responder é por que um shell não bash está tentando originar o script bash_completion. Eu estou supondo que o problema é um dos dotfiles no diretório home do usuário mysql .

Tente executar:

grep bash_completion ~mysql/.*

para descobrir qual deles. Meu palpite seria que o usuário mysql tem um .profile em seu diretório inicial que tenta executar comandos bash sem verificar se o shell em que ele está é bash.

Como alternativa, a correção mais simples para colocar as coisas em funcionamento novamente pode estar alternando / bin / sh para bash em vez de traço. De acordo com o link , você pode fazer isso executando:

sudo dpkg-reconfigure dash

e seguindo alguns prompts na tela para definir / bin / sh de volta ao bash.

    
por 28.07.2014 / 22:31