Нека следващите 2 реда се провалят, ако потребителят съществува и blahblah
няма значение за сега:
create user 'root'@'localhost' identified by 'blahblah';
create user 'root'@'127.0.0.1' identified by 'blahblah';
Направете своите субсидии:
grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'127.0.0.1';
Променете паролата на нещо, което ще запомните:
set password for 'root'@'localhost' = password('NewPassword');
set password for 'root'@'127.0.0.1' = password('NewPassword');
Вижте колко root потребители имате. Истинският потребител е комбинация потребител/хост. Паролата ще се покаже хеширана:
select user,host,password from mysql.user where user='root';
или
select user,host,authentication_string from mysql.user where user='root';
Вторият по-горе е за MySQL 5.7
Ако получите повече от двама потребители по-горе, изпуснете останалите като:
drop user 'root'@'%'; -- this is the wildcard hostname, can be a security risk
drop user 'root'@'::1';
Все още имате само 2? Надявам се. Използвайте избраните stmts по-горе, за да проверите.
Не свързвайте потребителско приложение чрез root. root е само за поддръжка. Няма значение дали това е код от страна на сървъра или дали го изпълнява администратор. Кодът, който не е защитен и/или е инжектиран с вредни изявления, се изпълнява като root. И така, ето защо.