Mysql
 sql >> база данни >  >> RDS >> Mysql

достъпът е отказан за потребител root @ localhost

Нека следващите 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. И така, ето защо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Amazon DynamoDB - Проектиране на таблици въз основа на приятелства

  2. Как да изберете множество записи (ред) от колона в mysql?

  3. Предотвратяване на SQL инжектиране в динамичен SQL

  4. Google Cloud SQL вече е само за четене

  5. Последици от дисковото пространство при задаване на стойност на колоната на MySQL на NULL вместо на 0 или ''