Você achou que nunca ia passar por isso, mas aconteceu: esqueceu a senha de root do seu servidor de banco de dados MySQL. Após um leve momento de pânico, você se lembra que a Internet pode ter a solução pra isso (afinal, não tem tudo lá?).  😉  Bom, se você está lendo esse artigo então saiba que “seus problemas se acabaram”®.

Eu também passei por isso e descobri uma página em que o sujeito descreve de maneira tão didática que nem tive que pensar pra resolver o problema, foi só seguir a receita de bolo. A página maravilhosa é o artigo Recover MySQL root password (quer um título mais direto do que esse?) do sítio nixCraft. Abaixo segue a tradução (com algumas modificações) do que a página recomenda. Importante, todos os passos descritos devem ser realizados como superusuário (root) ou usando as permissões de superusuário (através do comando sudo). Além disso, os comandos apresentados funcionaram no MySQL versão 5.0.51a-21, na distribuição Debian Lenny. Eles podem funcionar do mesmo jeito em outras distribuições, ou precisar de pequenas alterações.

  1. Pare o servidor MySQL.
    Comando:
    /etc/init.d/mysql stop
    Resultado:
    Stopping MySQL database server: mysqld
  2. Reinicie o servidor MySQL usando o parâmetro –skip-grant-tables. Ao fazer isso, ele não irá pedir a senha de acesso ao servidor.
    Comando:
    mysqld_safe --skip-grant-tables &
    Resultado:
    Starting mysqld daemon with databases from /var/lib/mysql

    mysqld_safe[15118]: started

  3. Conecte-se ao MySQL como superusuário.
    Comando:
    mysql -u root
    Resultado:
    Welcome to the MySQL monitor.  Commands end with ; or \g.

    Your MySQL connection id is 1

    Server version: 5.0.51a-21 (Debian) Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer. mysql>
  4. Defina a nova senha de superusuário (digite as linhas abaixo, apertando Enter ao final de cada uma).
    Comandos:
    use mysql;

    update user set password=PASSWORD("nova-senha-de-root") where User='root';

    flush privileges;

    quit
  5. Pare novamente o servidor MySQL.
    Comando:
    /etc/init.d/mysql stop
    Resultado:
    Stopping MySQL database server: mysqldSTOPPING server from pid file /var/run/mysqld/mysqld.pid

    mysqld_safe[15198]: ended

    .

    [1]+  Done                    sudo mysqld_safe --skip-grant-tables
  6. Reinicie mais uma vez o servidor MySQL.
    Comando:
    /etc/init.d/mysql start
    Resultado:
    Starting MySQL database server: mysqld.

Pronto! Seu servidor de banco de dados já está com a nova senha de superusuário ativa. Faça o teste e não se esqueça dela novamente!!!  🙂

Next Post Previous Post