div>

proszę bardzo. Po prostu uruchomiłeś maszynę wirtualną do testów, zainstalowałeś MySQL przy użyciu swojego ulubionego menedżera pakietów, uruchomiłeś serwer i nie udało Ci się połączyć:

$ mysql --user=root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

od wersji 5.,7, MySQL jest domyślnie Bezpieczny:

  • losowe hasło root jest generowany podczas instalacji; musisz przeczytać to hasło z dziennika serwera
  • musisz zmienić to hasło przy pierwszym połączeniu
  • nie można użyć pustego hasła z powodu wtyczki validate_password

To wszystko jest dobre pod względem bezpieczeństwa. Ale jeśli dopiero instalujesz MySQL na lokalnej maszynie wirtualnej do własnych testów, może to być naprawdę irytujące.

aby usunąć hasło root MySQL, po prostu uruchom następujący skrypt zaraz po zainstalowaniu i uruchomieniu serwera MySQL:

Na MySQL 5.,7:

On MySQL 8.0:

Note: you must execute this script as root.,

skrypt wykonuje następujące czynności:

  • odczytuje tymczasowe hasło z pliku dziennika
  • zmienia to hasło na inne tymczasowe hasło, które przechodzi validate_password sprawdza
  • odinstalowuje validate_password wtyczka (lub komponent w MySQL 8)
  • ustawia puste hasło

możesz teraz połączyć się bez hasła:

uważaj, aby Twoja instalacja MySQL była niezabezpieczona, nie powinieneś używać tego do niczego poważnego!,

bezpieczna alternatywa

Jeśli korzystasz głównie z MySQL z linii poleceń, możesz zachować kontoroot chronione hasłem, jednocześnie unikając niedogodności związanych z koniecznością podania hasła w linii poleceń.

Po prostu utwórz plik~/.my.cnf:


user = root
password = xxx

Możesz teraz po prostu wpisaćmysql, a Klient MySQL automatycznie zaloguje się z tymi poświadczeniami.