MySQL lösenord hashing

När du uppgraderar din MySQL installation, se till att uppgradera alla klienter som använder det.

I vissa fall kommer klienter som använder en tidigare version 4,1 har problem autentisera mot MySQL-databasen om denne har ett inlägg 4,1 version.

Tricket är att efter 4,1 (dvs. 4,11 och uppåt), bytte MySQL hur den lagrar lösenord i användarens tabellen inne i MySQL databas.
Lösenord hashar är nu 41 byte lång istället för den gamla 16 byte.

Så till exempel, om din MySQL server är 5,0, medan din php-mysql-biblioteket är 4,1, kommer din webbapplikationer misslyckas med att ansluta till databasen. Som sådan är det rekommenderat att du uppgraderar kunden.

I vilket fall som erbjuder MySQL ett sätt att ändra hash tillbaka till det gamla formatet. För diskussionens skull antar att användaren i fråga är John, och du vill kunna ansluta med lösenord dummy. I så fall ansluta till MySQL-servern från prompten (SSH och använda "mysql-u root-p mysql" på Linux, eller gå till din mysql / bin Windows-katalogen och kör samma fråga), då frågan på följande frågor:

uppdatera användaren ställa Lösenord = old_password ("dummy") där User = 'john';
flush privilegier;

den old_password () funktionen genererar den gamla 16 byte hash. Den första frågan kommer så småningom att uppdatera användarens lösenord att använda denna hash. Den andra frågan är nödvändigt för MySQL tjänsten att läsa den nya användaren privilegier.

PS: Om ditt root-lösenord inte fungerar, se även till guiden om hur man återställer det .

Alternativt, om din databas har många användare och du inte hålla reda på dem, kan du använda följande fråga och det kommer tillbaka användarnamn som använder den nya hash

Välj distinkt (User) från användare där LÄNGD (Password) = 41!;

Lämna en kommentar

Din kommentar