Lascia che le seguenti 2 righe falliscano se l'utente esiste e blahblah
non importa per ora:
create user 'root'@'localhost' identified by 'blahblah';
create user 'root'@'127.0.0.1' identified by 'blahblah';
Fai le tue sovvenzioni:
grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'127.0.0.1';
Cambia la password con qualcosa che ricorderai:
set password for 'root'@'localhost' = password('NewPassword');
set password for 'root'@'127.0.0.1' = password('NewPassword');
Guarda quanti utenti root hai. Un utente reale è una combinazione utente/host. La password verrà visualizzata con hash:
select user,host,password from mysql.user where user='root';
o
select user,host,authentication_string from mysql.user where user='root';
Il secondo sopra è per MySQL 5.7
Se ottieni più dei due utenti sopra, elimina gli altri come:
drop user 'root'@'%'; -- this is the wildcard hostname, can be a security risk
drop user 'root'@'::1';
Ne hai ancora solo 2? Lo spero. Usa gli stmts selezionati sopra per controllare.
Non connettere un'app utente tramite root. root è solo per la manutenzione. Non importa se si tratta di codice lato server o se un amministratore lo esegue. Il codice che non è protetto e/o iniettato con istruzioni dannose viene eseguito come root. Ecco, ecco perché.