Quando você não souber sua senha de root (ou um erro como 'ERROR 1045 (28000): Access denied for user 'root'@'localhost'
impede o acesso) você pode obter acesso adicionando a opção ao arquivo de configuração do MySQL. Primeiro abra-o para edição:
sudo nano /etc/mysql/my.cnf
Em seguida, pesquise por [mysqld]
e insira esses valores abaixo:
[mysqld]
# For debugging and recovery only #
skip-grant-tables
skip-networking
###################################
Como você pode ver, o truque para adicionar parâmetros de linha de comando aqui está descartando o --
da frente do parâmetro. Agora reinicie o serviço mysql e você pode acessar suas tabelas para redefinir o seu senha do usuário root ou quase tudo que você precisa fazer. (No entanto, você não pode fazer nada com as tabelas de permissões porque elas não estão carregadas.)
Cuidado. Enquanto você está neste modo, qualquer usuário logado tem acesso a todo o seu banco de dados. É por isso que adicionei a opção skip-networking
acima, para que os usuários remotos não possam acessar as tabelas enquanto você está se recuperando.
Lembre-se de comentar essas linhas e reinicie o mysql mais uma vez quando terminar, para proteger novamente o servidor.