Niech następujące 2 wiersze nie powiodą się, jeśli użytkownik istnieje i blahblah
na razie nie ma znaczenia:
create user 'root'@'localhost' identified by 'blahblah';
create user 'root'@'127.0.0.1' identified by 'blahblah';
Zrób swoje granty:
grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'127.0.0.1';
Zmień hasło na takie, które zapamiętasz:
set password for 'root'@'localhost' = password('NewPassword');
set password for 'root'@'127.0.0.1' = password('NewPassword');
Zobacz, ilu masz użytkowników root. Prawdziwy użytkownik to kombinacja użytkownik/host. Hasło pojawi się zahaszowane:
select user,host,password from mysql.user where user='root';
lub
select user,host,authentication_string from mysql.user where user='root';
Drugi z powyższych dotyczy MySQL 5.7
Jeśli masz więcej niż dwóch powyższych użytkowników, usuń pozostałych, takich jak:
drop user 'root'@'%'; -- this is the wildcard hostname, can be a security risk
drop user 'root'@'::1';
Nadal masz tylko 2? Mam nadzieję. Użyj wybranych instrukcji powyżej, aby to sprawdzić.
Nie podłączaj aplikacji użytkownika za pomocą roota. root służy tylko do konserwacji. Nie ma znaczenia, czy jest to kod po stronie serwera, czy uruchamia go administrator. Kod, który nie jest zabezpieczony i/lub wstrzyknięty szkodliwymi instrukcjami, może działać jako root. Więc oto dlaczego.