Je to tu zase. Právě jste živy virtuální stroj dělat nějaké testování, instalaci MySQL pomocí vašeho oblíbeného správce balíčků, začal serveru a připojení selhalo:

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

Od verze 5.,7, MySQL je bezpečné-by-default:

  • náhodné heslo uživatele root je generován při instalaci, musíte si přečíst toto heslo ze serveru log
  • budete muset toto heslo změnit při prvním připojení
  • nelze použít prázdné heslo, protože validate_password plugin

je To všechno dobré zabezpečení-moudrý. Ale pokud právě instalujete MySQL na místní VM pro vlastní testování, může to být opravdu nepříjemné.

Chcete-li odstranit heslo uživatele MySQL root, spusťte následující skript ihned po instalaci a spuštění serveru MySQL:

na MySQL 5.,7:

On MySQL 8.0:

Note: you must execute this script as root.,

skript provede následující akce:

  • čte dočasné heslo ze souboru protokolu
  • změny tohoto hesla do další dočasné heslo, které prochází validate_password kontroly
  • odinstaluje validate_password plugin (nebo součást v MySQL 8)
  • nastaví prázdné heslo

nyní můžete připojit bez hesla:

Buďte opatrní, že to opustí vaše instalace MySQL nezajištěné, neměli byste používat to nic vážného!,

bezpečné alternativou

Pokud jste to především pomocí MySQL z příkazové řádky, můžete mít root účet chráněn heslem, zatímco stále vyhnout se nepříjemnosti, že bude muset zadat heslo na příkazovém řádku.

Stačí vytvořit ~/.my.cnf file:


user = root
password = xxx

nyní můžete prostě napsat mysql a MySQL klient bude automaticky přihlásit pomocí těchto pověření.