sql >> Databasteknik >  >> RDS >> Mysql

Ändra och återställ MySQL root-lösenord

Det finns många sätt att återställa och ändra root-lösenordet för mySQL-databasen, i händelse av att lösenordet glöms bort eller förloras, eller om du helt enkelt vill göra lösenordet säkrare med komplex algoritm och regelbunden ändring. Följande instruktioner förklarar i detalj det alternativa sättet i den sista delen av guiden som nämns ovan, där ingen ytterligare fil behöver skapas:

  1. Logga in som root på den Windows- eller Unix-liknande (Unix, Linux eller BSD) maskinen med MySQL-servern.
  2. Stoppa MySQL-servern genom att använda något av följande kommando:

    Linux:

    /etc/rc.d/init.d/mysql stop

    FreeBSD:

    /usr/local/etc/rc.d/mysql-server.sh stop
  3. Öppna mysql-serverns startskript (dvs. mysql-server.sh eller mysql som är filen som körs för att starta eller stoppa MySQL-servern).
  4. LÄGG TILL –hoppa över-bevilja-tabeller till slutet av raden som innehåller mysqld_safe kommando som parameter.
  5. Starta MySQL-servern med följande kommando:

    Linux:

    /etc/rc.d/init.d/mysql start

    FreeBSD:

    /usr/local/etc/rc.d/mysql-server.sh start
  6. Alternativt, starta MySQL-servern direkt och hoppa över redigeringen med följande kommando (om du använder det här steget behöver du inte ändra MySQL-startskriptet):
    mysqld_safe --skip-grant-tables &

    Beroende på din sökvägsmiljö kan du behöva peka på rätt katalog där mysqld_safe är istället.

  7. Kör följande kommandon för att logga in som mysql-användare och ansluta till mysql-användar-/behörighetsdatabas:
    # mysql -u root mysql
  8. Kör uppdateringsfrågorna för att ändra MySQL-lösenordet:
    mysql> UPDATE user SET Password=PASSWORD('newrootpassword') WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Obs! Byt ut newrootpassword med det nya root-lösenordet för MySQL-servern. Flush Privileges krävs för att lösenordsändringen ska träda i kraft omedelbart.

  9. Avsluta mysql-databasklienten genom att skriva exit .
  10. Stoppa MySQL-servern med kommandon som anges i steg 2.
  11. Öppna mysql-serverns startskriptredigering i steg 3 igen och TA BORT –skip-grant-tabellerna parameter som har lagts till.
  12. Starta MySQL-servern genom att använda kommandot från steg 5 eller 6.

För Redhat Linux-användare, använd följande instruktioner som rotanvändare av Redhat Linux-maskin:

  1. Stoppa MySQL-processen genom att använda kommandot:
    # killall mysqld
  2. Starta MySQL-servern med följande alternativ:
    # /usr/libexec/mysqld -Sg --user=root &
  3. Starta MySQL-klienten:
    # mysql

    Du bör se följande meddelande:

    Välkommen till MySQL-skärmen. Kommandon slutar med; eller g.
    Ditt MySQL-anslutnings-id är 1 till serverversion:3.xx.xx

    Skriv "hjälp" eller "h" för hjälp. Skriv 'c' för att rensa bufferten.

    mysql>

  4. Använd mysql-databas:
    mysql> USE mysql 

    Du bör se följande meddelande:

    Läsa tabellinformation för komplettering av tabell- och kolumnnamn
    Du kan stänga av den här funktionen för att få en snabbare start med -A

    Databasen ändrad

  5. Uppdatera sedan lösenordet för root-användaren med följande kommando:
    UPDATE user SET password=password("newpassword") WHERE user="root";

    Ersätt nytt lösenord med ditt önskade lösenord. Du bör se följande meddelande:

    Fråga OK, 2 rader påverkade (0,03 sek)
    Matchade rader:2 Ändrade:2 Varningar:0

    De rader som påverkas kan vara olika, men Query OK bör finnas där.

  6. Töm databasbehörigheterna för att ladda om den för att göra ändringarna effektiva:
    mysql> flush privileges; 

    Du bör få följande resultat:

    Fråga OK, 0 rader påverkade (0,02 sek)

  7. Avsluta MySQL-klienten genom att skriva exit .
  8. Döda MySQL-serverprocessen genom att skriva killall mysqld .
  9. Starta sedan MySQL igen:
    /etc/init.d/mysqld start


  1. PostgreSQL vs. MySQL

  2. Flera databaser i docker och docker-compose

  3. Hur kan jag använda regex för att dela en sträng med en sträng som avgränsare?

  4. Fråga för att lista alla lagrade procedurer