Der kan du gå igen. Du har lige spundet en virtuel maskine op for at udføre nogle test, installeret Mys .l ved hjælp af din foretrukne pakkehåndtering, startet serveren og kunne ikke oprette forbindelse:

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

siden version 5.,7, MySQL er sikker-by-default:

  • en tilfældig root password er genereret efter installationen, skal du læse denne adgangskode fra den server log
  • du er nødt til at ændre denne adgangskode, første gang du opretter forbindelse
  • du kan ikke bruge en tom adgangskode på grund af den validate_password plugin

Dette er en god sikkerhed-wise. Men hvis du bare installerer Mys .l på en lokal VM til din egen test, kan dette blive virkelig irriterende.

for At fjerne MySQL root-adgangskode, skal du blot køre følgende script lige efter installation og start af MySQL-server:

På MySQL 5.,7:

On MySQL 8.0:

Note: you must execute this script as root.,

scriptet udfører følgende handlinger:

  • lyder det midlertidige password fra log-fil
  • ændrer dette password til et andet midlertidige password, der passerer validate_password kontrol
  • afinstallerer validate_password plugin (eller en komponent i MySQL 8)
  • sæt en tom adgangskode

Du kan nu oprette forbindelse til uden en adgangskode:

pas på, at dette efterlader din MySQL installation uden sikkerhed, skal du ikke bruge dette til noget alvorligt!,

En sikker alternativ

Hvis du primært bruger MySQL fra kommandolinjen, kan du holde root konto er beskyttet med en adgangskode, mens du stadig undgå besværet med at skulle angive adgangskoden på kommandolinjen.

du skal Bare oprette en ~/.my.cnf fil:


user = root
password = xxx

nu kan Du bare skrive mysql, og MySQL-klienten vil automatisk log ind med disse oplysninger.