där går du igen. Du snurrade bara upp en virtuell maskin för att göra några tester, installerade MySQL med din favorit pakethanterare, startade servern och misslyckades med att ansluta:
$ mysql --user=root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Sedan version 5.,7, MySQL är säker-som standard:
- ett slumpmässigt rotlösenord genereras vid installationen; Du måste läsa detta lösenord från serverloggen
- Du måste ändra det här lösenordet första gången du ansluter
- Du kan inte använda ett tomt lösenord på grund av validate_password plugin
det här är allt bra säkerhetsmässigt. Men om du bara installerar MySQL på en lokal VM för din egen testning kan det bli riktigt irriterande.
för att ta bort MySQL root-lösenordet, kör bara följande skript direkt efter installation och start av MySQL-servern:
på MySQL 5.,7:
On MySQL 8.0:
Note: you must execute this script as root.,
skriptet utför följande åtgärder:
- läser det tillfälliga lösenordet från loggfilen
- ändrar det här lösenordet till ett annat tillfälligt lösenord som passerar
validate_password
kontroller - avinstallerar
validate_password
plugin (eller komponent i MySQL 8) - ställer in ett tomt lösenord
Du kan nu ansluta utan lösenord:
var försiktig så att detta lämnar din MySQL-installation osäker, Du bör inte använda detta för något allvarligt!,
ett säkert alternativ
om du huvudsakligen använder MySQL från kommandoraden kan du hålla root
– Kontot skyddat av ett lösenord, samtidigt som du undviker besväret att behöva ange lösenordet på kommandoraden.
skapa bara en~/.my.cnf
fil:
user = root
password = xxx
Du kan nu bara skrivamysql
, och MySQL-klienten loggar automatiskt in med dessa referenser.