MySQL: “Comando UPDATE negado ao usuário '' @ 'localhost'” [duplicado]

2

Por alguma razão, quando eu instalei o MySQL na minha máquina (um Mac rodando OS X 10.9) a conta MySQL 'root' ficou confusa e eu não tenho acesso a ela, mas eu tenho acesso à conta padrão do MySQL 'sean @ localhost' que eu uso para entrar no phpMyAdmin.

Estou tentando redefinir a senha 'root' iniciando o daemon mysqld usando o comando mysqld --skip-grant-tables e executando as seguintes linhas no arquivo mysql > concha.

mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')

-> WHERE User='root';

mysql> FLUSH PRIVILEGES;

O problema é quando eu tento rodar aquela string do MySQL o daemon cospe de volta um ERROR 1142 (42000): UPDATE command denied to user ''@'localhost' for table 'user' como se eu não tivesse usado o argumento -u quando eu iniciei o shell mysql, ou então eu usei.

Qualquer ajuda é muito apreciada, pois estou perdido neste momento. : /

    
por Uncle Nerdicus 09.11.2013 / 22:50

1 resposta

0

Bem, você diz que tem acesso via:

sean@localhost

Mas você diz que não tem acesso via:

''@'localhost'

Então você está claramente com o MySQL rodando com permissões de usuários. O que não ajudará em um caso como este. Portanto, a chave deve ser muito contornável para que o usuário conceda o MySQL & re-launcing via (isto é o que eu faço no Ubuntu):

sudo mysqld --skip-grant-tables &

Em um Mac, pode ser tão simples quanto fazer isso sem sudo :

mysqld --skip-grant-tables &

Então, quando isso estiver em execução, efetue login como root; você pode fazer isso agora, pois as concessões de uso são ignoradas:

mysql -u root mysql

Em seguida, execute uma consulta como esta, substituindo suas próprias configurações:

UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE user='root'; FLUSH PRIVILEGES; exit;
    
por 10.11.2013 / 04:05

Tags