Como Recuperar uma Senha de Root Esquecida


Se você nunca definiu um senha de root para o MySQL, então o servidor não irá exigir uma senha para a conexão como root. É recomendado que sempre seja definida uma senha para cada usuário. See "Como Tornar o MariaDB Seguro contra Crackers".

Se você tiver definido um senha de root, mas a esqueceu, você pode definir uma nova senha com o seguinte procedimento:

  1. Finalize o daemon mysqld enviando um kill (não kill -9) para o servidor mysqld. O pid é armazenado em um arquivo .pid, que normalmente está no diretório de banco de dados do MariaDB:
    shell> kill `cat /mysql-data-directory/hostname.pid`
    

    Você deve ser o usuário root do Unix ou o mesmo usuário com o qual o mysqld está executando para fazer isto.

  2. Reinicie o mysqld com a opção --skip-grant-tables.
  3. Defina uma nova senha com o comando mysqladmin password:
    shell> mysqladmin -u root password 'mynewpassword'
    
  4. Agora você também pode parar o mysqld e reiniciá-lo normalmente, ou apenas carregue a tabela de privilégios com:
    shell> mysqladmin -h hostname flush-privileges
    
  5. Depois disto, você deve estar apto para conectar usando a nova senha.

De forma alternativa, você pode definir a nova senha usando o cliente MariaDB:

  1. Finalize e reinicie o mysqld com a opção --skip-grant-tables com descrito acima.
  2. Conecte ao servidor mysqld com:
    shell> mysql -u root mysql
    
  3. Dispare os seguintes comandos no cliente MariaDB:
    mysql> UPDATE user SET Password=PASSWORD('minhanovasenha')
     -> WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    
  4. Depois disto, você deve estar apto a conectar usando a nova senha.
  5. Você agora pode parar o mysqld e reiniciá-lo normalmente.

Retornar