sql >> Database >  >> RDS >> Mysql

toegang geweigerd voor gebruiker root @ localhost

Laat de volgende 2 regels mislukken als de gebruiker bestaat en blahblah maakt voorlopig niet uit:

create user 'root'@'localhost' identified by 'blahblah';
create user 'root'@'127.0.0.1' identified by 'blahblah';

Doe je subsidies:

grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'127.0.0.1';

Verander het wachtwoord in iets dat u zich herinnert:

set password for 'root'@'localhost' = password('NewPassword');
set password for 'root'@'127.0.0.1' = password('NewPassword');

Kijk hoeveel rootgebruikers je hebt. Een echte gebruiker is een gebruiker/host-combinatie. Het wachtwoord wordt gehasht weergegeven:

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

of

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

De 2e hierboven is voor MySQL 5.7

Als u meer dan de twee bovenstaande gebruikers krijgt, laat u de andere vallen, zoals:

drop user 'root'@'%';   -- this is the wildcard hostname, can be a security risk
drop user 'root'@'::1';

Heb je er nog maar 2? Ik hoop het. Gebruik de geselecteerde instellingen hierboven om te controleren.

Verbind geen gebruikersapp met root. root is alleen voor onderhoud. Het maakt niet uit of het server-side code is, of dat een beheerder het uitvoert. Code die niet is beveiligd en/of is geïnjecteerd met schadelijke instructies, wordt uitgevoerd als root. Dus daar, daarom.



  1. PHP PDO kolommen selecteren met enkele aanhalingstekens in hun naam

  2. Is het mogelijk om een ​​subquery te doen met Sequelize.js?

  3. De naam van een JSON-sleutel in SQL Server (T-SQL) wijzigen

  4. gebruik IFNULL in laravel