Hur man ändrar lösenord för MySQL-rotanvändare via terminal

Jag känner någon annan administratör som har glömt lösenordet till MySQL-roten, det här kan vara ett verkligt besvär, eller hur?

Tänk dig att du måste skapa en ny databas, göra vad som helst och du kan inte eftersom du inte kommer ihåg lösenordet för administratören (root) på MySQL-servern, ett verkligt problem.

Här kommer jag att visa dig hur du kommer åt MySQL-servern via terminalen UTAN att du ställer in rotlösenordet, så när du är inne kan du ändra root-lösenordet.

Relaterad artikel:
Kontrollera MySQL-databastabeller och reparera korrupta

Det första kommer att vara att stoppa mysql-tjänsten:

Följande två kommandon måste köras med administrativa behörigheter, antingen genom att ställa in sudo i början av kommandot eller genom att köra dem direkt som rot

service mysql stop

Detta stoppade tjänsten, nu ska vi starta den men på ett annat sätt, ett sätt som inte kommer att be oss om ett lösenord senare:

mysqld_safe --skip-grant-tables &

Klar, nu ska vi komma åt MySQL-terminalen:

mysql -u root

De kommer att se att det inte bad om ett lösenord, de kommer att se att de redan har gått in i MySQL-konsolen eller terminalen och kan göra vad de vill, låt oss fortsätta med att ändra MySQL-root-lösenordet.

Först kommer vi in ​​i MySQL-databasen som sådan:

use mysql;

Låt oss sedan ändra lösenordet:

update user set password=PASSWORD("ElNuevoPassword") where user='root';

Låt oss nu uppdatera behörigheterna:

flush privileges;

Och slutligen går vi ut:

quit;

Redo, vi har ändrat lösenordet för MySQL-rotanvändaren, nu ska vi stoppa tjänsten och starta det som det ska vara:

service mysql stop

service mysql start

end

Detta är allt, de har fått tillbaka kontrollen över sin egen MySQL-server


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

15 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   fyrköld sade

    Mycket bra tips, tack

  2.   Chaparral sade

    Utmärkt, bra!

  3.   FIXOCONN sade

    att vänta på att det ska hända mig att prova, inget bra tips

  4.   CrisXuX sade

    Utmärkt

  5.   Gustavo Londono L. sade

    mycket bra artikel, en kram !!

  6.   Ricardo sade

    Mycket användbart, du har precis fått mig ur en bind. Tack.

  7.   Pepe sade

    Mycket användbart, du fick mig ur en snäv plats, tack!

  8.   Jose sade

    Den här lösningen har fungerat för mig många gånger, men nu har jag en nyinstallerad mysql-motor och försöker ställa in lösenordet, men det säger mig att "lösenord" -fältet inte finns, kontrollera strukturen och fältet existerar inte riktigt. Någon aning om hur man fixar det?

  9.   Ignatius farre sade

    Tack, du har räddat mig genom att kunna få tillbaka kontrollen över min mysql ...

  10.   David sade

    Jag arbetade av tiotusen tack.

  11.   Javierfdez sade

    Du har löst mitt problem. Tack!

  12.   freval sade

    De sista fyra stegen gör skillnad tack så mycket

  13.   FuzzJS sade

    Tack det fungerade mycket bra för mig men jag hade ett fel efter det första kommandot med följande meddelande:

    mysqld_safe Directory '/ var / run / mysqld' för UNIX-uttagsfil finns inte

    Att skapa katalogen löste problemet och jag kunde slutföra lösenordsändringen, jag delar kommandona om det händer någon.

    mkdir -p / var / run / mysqld
    chown mysql: mysql / var / run / mysqld

  14.   ANNE JULIA sade

    För bra

  15.   Giuseppe sade

    Tack så mycket för artikeln.
    Det hjälpte mig att återställa testdatabaserna från en hallon-pi där jag har installerat en LAMP-server under lång tid.