Como recuperar a senha do mysql?

2

O que eu já fiz foi:

sudo /etc/init.d/mysql stop
/usr/sbin/mysqld --skip-grant-tables --skip-networking & 

Depois disso, estou recebendo:

[Warning] Using unique option prefix key_buffer instead of
key_buffer_size is deprecated and will be removed in a future release.  
Please use the full name instead.

150929 11:48:31[Note] /usr/sbin/mysqld (mysqld ....)starting as
process 3633 ...

E não é processado ainda mais.

O que fazer?

    
por Mrityunjay Kumar Singh 29.09.2015 / 08:22

3 respostas

1

Os próximos passos podem ser:

  1. No terminal:

    mysql
    
  2. No shell do mysql:

    use mysql;
    select user,password,host from user;
    update user set password=password("newpassword") where user=root;
    select user,password,host from user;
    flush tables;
    FLUSH PRIVILEGES;
    quit
    
  3. No terminal:

    kill -15 'pgrep -f 'skip-grant-tables' 
    service mysql start
    mysql -u root -p
    
por Ova 29.09.2015 / 10:05
1
  1. Faça login no sistema como o usuário Unix que o servidor MySQL executa como (por exemplo, mysql).

  2. Pare o servidor MySQL se ele estiver em execução. Você fez isso com:

    su /etc/init.d/mysql stop
    
  3. Crie um arquivo de texto contendo a seguinte declaração em uma única linha. Substitua a senha pela senha que você deseja usar.

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    

Salve o arquivo. Este exemplo nomeia o arquivo /home/me/mysql-init . O arquivo contém a senha, portanto, não salve-o onde possa ser lido por outros usuários. Se você não está logado como mysql (o usuário que o servidor executa como), certifique-se de que o arquivo tenha permissões que permitam que o mysql o leia.

  1. Inicie o servidor MySQL com a opção especial --init-file :

    shell> /usr/sbin/mysqld --init-file=/home/me/mysql-init &
    

O servidor executa o conteúdo do arquivo nomeado pela opção --init-file na inicialização, alterando a senha da conta 'root'@'localhost' .

  1. Depois que o servidor foi iniciado com êxito, exclua /home/me/mysql-init .

  2. Mate mysqld e comece com:

    su /etc/init.d/mysql start
    
por nobody 29.09.2015 / 08:41
1

O que você fez está correto, conforme explicado no manual (veja manual do MySQL 5.5 no ponto B.5.4.1.3). No ponto em que você parou, seu servidor MySQL é iniciado sem controle de permissões. Tudo o que você precisa fazer é seguir os próximos passos no link acima (resumido abaixo):

  1. Conecte-se ao seu servidor MySQL através do terminal:

    shell> mysql
    
  2. Recarregue as tabelas de permissões para que as instruções de gerenciamento de conta funcionem:

    mysql> FLUSH PRIVILEGES;
    
  3. Altere a senha (não se esqueça do ; no final):

    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    
  4. Saia do cliente MySQL e reinicie o servidor mysql normalmente:

    mysql> exit;
    shell> sudo service mysql restart
    

A propósito, é melhor usar o service start/stop/restart/status para gerenciar os vários serviços como mysqld do que usar a versão /etc/init.d/ como você fez.

    
por Marc Vanhoomissen 29.09.2015 / 14:46