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í.