sql >> Databáze >  >> RDS >> Mysql

přístup odepřen pro uživatele root @ localhost

Nechte následující 2 řádky selhat, pokud uživatel existuje a blahblah na tom teď nezáleží:

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

Udělejte své granty:

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

Změňte heslo na něco, co si budete pamatovat:

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

Podívejte se, kolik máte uživatelů root. Skutečný uživatel je kombinace uživatel/hostitel. Heslo se zobrazí hashované:

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

nebo

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

Druhý výše je pro MySQL 5.7

Pokud získáte více než dva výše uvedené uživatele, zahoďte ostatní, například:

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

Pořád máte jen 2? Doufám. Pro kontrolu použijte výše uvedené vybrané značky.

Nepřipojujte uživatelskou aplikaci pomocí root. root je pouze pro údržbu. Nezáleží na tom, zda se jedná o kód na straně serveru nebo zda jej spouští administrátor. Kód, který není zabezpečen a/nebo obsahuje škodlivé příkazy, se spustí jako root. Takže, právě proto.



  1. SQL:BETWEEN vs <=a>=

  2. Formátovat výsledky dotazu SQLite jako sloupce se záhlavími sloupců

  3. Převést objekt javascript na datum do formátu data mysql (RRRR-MM-DD)

  4. Chyba #1066 - Není jedinečná tabulka/alias v MySQL