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.