Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

acesso negado para usuário root @ localhost


Deixe as 2 linhas a seguir falharem se o usuário existir e blahblah não importa por enquanto:
create user 'root'@'localhost' identified by 'blahblah';
create user 'root'@'127.0.0.1' identified by 'blahblah';

Faça suas doações:
grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'127.0.0.1';

Altere a senha para algo que você vai se lembrar:
set password for 'root'@'localhost' = password('NewPassword');
set password for 'root'@'127.0.0.1' = password('NewPassword');

Veja quantos usuários root você tem. Um usuário real é uma combinação de usuário/host. A senha aparecerá com hash:
select user,host,password from mysql.user where user='root';

ou
select user,host,authentication_string from mysql.user where user='root';

O segundo acima é para o MySQL 5.7

Se você obtiver mais do que os dois usuários acima, elimine os outros, como:
drop user 'root'@'%';   -- this is the wildcard hostname, can be a security risk
drop user 'root'@'::1';

Ainda tem apenas 2? Espero que sim. Use as instruções de seleção acima para verificar.

Não conecte um aplicativo de usuário usando root. root é apenas para manutenção. Não importa se é um código do lado do servidor ou se um administrador o está executando. O código que não é protegido e/ou injetado com instruções prejudiciais é executado como root. Então, é por isso.