Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wyłączyć logowanie root do MySQL, gdy nie podano hasła?

Użytkownicy napotykający to zachowanie w nowszych wersjach MySQL/MariaDB (np. Debian Stretch itp.) powinni wiedzieć, że w tabeli mysql.user znajduje się kolumna o nazwie 'plugin'. Jeśli wtyczka 'unix_socket' jest włączona, root będzie mógł zalogować się za pomocą wiersza poleceń bez konieczności podawania hasła. Inne mechanizmy logowania zostaną wyłączone.

Aby sprawdzić, czy tak jest:

SELECT host, user, password, plugin FROM mysql.user;

które powinno zwrócić coś takiego (z włączonym unix_socket):

+-----------+------+--------------------------+-------------+
| host      | user | password                 | plugin      |
+-----------+------+--------------------------+-------------+
| localhost | root | <redacted_password_hash> | unix_socket |
+-----------+------+--------------------------+-------------+

Aby to wyłączyć i wymagać od administratora używania hasła:

UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;

Uwaga: Jak zauważył @marioivangf (w komentarzu) w nowszych wersjach MySQL (np. 5.7.x) może być konieczne ustawienie wtyczki na „mysql_native_password” (zamiast pustej).

Następnie uruchom ponownie:

service mysql restart

Problem rozwiązany!:

[email protected] ~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Źródło:https://stackoverflow.com/a/44301734/3363571 Wielkie podziękowania dla @SakuraKinomoto (proszę głosować na jego odpowiedź, jeśli uznasz to za przydatne).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klucze obce w MySQL?

  2. MySQL usuwa niektóre klucze obce

  3. Jak wyświetlić rekordy bazy danych w widoku bez powtarzania pola?

  4. Wybierz Wszystkie wydarzenia z wydarzeniem->Harmonogram->Data między datą rozpoczęcia i zakończenia w CakePHP

  5. Czytaj ogromne pliki tekstowe i przechowuj każdą linię w bazie danych