Por que não consigo parar o serviço MySQL no Debian?

10

Eu apenas tentei atualizar do debian squeeze para o unstable substituindo 'squeeze' por 'unstable' em /etc/apt/sources.list . A atualização ocorreu sem problemas, exceto pelo MySQL, que falhou porque não conseguia parar o MySQL.

/etc/init.d/mysql stop simplesmente retorna que ele falhou, mas se eu tentar obter o status com /etc/init.d/mysql status , isso me causará este erro:

me@debian:~$ sudo /etc/init.d/mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

O MySQL está rodando bem, e eu verifiquei as permissões para o debian-sys-maint no phpmyadmin e ele tem permissão para fazer tudo, mas somente conectar de localhost .

    
por anon 07.04.2011 / 23:59

3 respostas

6

Tente isto:

  1. sudo cat /etc/mysql/debian.cnf e procure a senha listada nas seções [client] e [mysql_upgrade]

  2. mysql -u root -p password é a senha original do MySQL

  3. GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';

  4. /etc/init.d/mysql restart

Essa é a correção e este é o raciocínio por trás disso, se você estiver interessado.

    
por 08.04.2011 / 01:19
2

Uma atualização para a resposta. Na etapa 3, tive que usar

GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';

Existem asteriscos no período posterior a "ON". Trabalhou no MySQL 5.1

    
por 21.12.2011 / 01:55
1

O Manual de Referência do MySQL diz que você pode fazer isso:

  1. Faça logon no sistema como o usuário Unix que o servidor mysqld executa como (por exemplo, mysql ).
  2. Localize o arquivo .pid que contém o ID do processo do servidor. A localização e o nome exatos desse arquivo dependem da sua distribuição, nome do host e configuração. Locais comuns são /var/lib/mysql/ , /var/run/mysqld/ e /usr/local/mysql/data/ . Geralmente, o nome do arquivo tem uma extensão de .pid e começa com mysqld ou o nome do host do seu sistema.

    Você pode parar o servidor MySQL enviando um kill normal (não kill -9) para o processo mysqld, usando o nome do caminho do arquivo .pid no seguinte comando:

.

kill cat '/mysql-data-directory/host_name.pid'
    
por 07.11.2013 / 12:14