sql >> Databasteknik >  >> RDS >> Mysql

Återställ rotlösenordet för MySQL Server

Som standard kommer MySQL Server att installeras med root-superanvändare utan något lösenord. Du kan ansluta till MySQL-servern som root utan att behöva lösenord eller genom att knappa in ett tomt lösenord. Men om du har ställt in lösenordet för root och glömmer eller inte kan återkalla lösenordet, måste du återställa root-lösenordet för MySQL.

MySQL Referensmanual har detaljerade steg för hur man återställer lösenordet för root som är enligt nedan:

Proceduren under Windows:

  1. Logga in på Windows-systemet där MySQL körs som administratör.
  2. Stoppa MySQL-servern om den körs. För en server som körs som en Windows-tjänst, gå till Tjänsthanteraren:

    Startmeny -> Kontrollpanelen -> Administrativa verktyg -> Tjänster

    Hitta sedan MySQL-tjänsten i listan och stoppa den.

    Om din server inte körs som en tjänst kan du behöva använda Aktivitetshanteraren för att tvinga den att stoppa.

  3. Skapa en textfil och placera följande kommandon i den var och en på en rad:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;
    
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
    
    Save the file with any name. For this example the file will be C:\mysql-init.txt.
  4. Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
  5. If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly. At the DOS command prompt, execute this command:
    C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt

    Innehållet i filen som namnges av --init-file-alternativet exekveras vid serverstart, vilket ändrar root-lösenordet. Efter att servern har startat framgångsrikt bör du ta bort C:\mysql-init.txt.

    Om du installerade MySQL med MySQL Installation Wizard, kan du behöva ange ett --defaults-file-alternativ:

    C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe"
             --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"
             --init-file=C:\mysql-init.txt

    Lämplig --defaults-file-inställning kan hittas med hjälp av Services Manager:

    Startmeny -> Kontrollpanelen -> Administrativa verktyg -> Tjänster

    Hitta MySQL-tjänsten i listan, högerklicka på den och välj alternativet Egenskaper. Fältet Sökväg till körbar fil innehåller inställningen --defaults-file. Var noga med att ange --init-file-argumentet med hela systemsökvägen till filen, oavsett din nuvarande arbetskatalog

  6. Stoppa MySQL-servern och starta om den i normalt läge igen. Om MySQL-servern körs som en tjänst, starta den från Windows Services-fönstret. Om du startar servern manuellt, använd det kommando du normalt använder.
  7. Anslut till MySQL-servern genom att använda det nya lösenordet. Kom också ihåg att ta bort filen mysql-init.txt när du är klar.

För Unix- och Linux-miljöer är proceduren för att återställa root-lösenordet som följer:

  1. Logga in på Unix-systemet som antingen Unix root-användare eller som samma användare som mysqld-servern körs som.
  2. Leta reda på .pid-filen som innehåller serverns process-ID. Den exakta platsen och namnet på denna fil beror på din distribution, värdnamn och konfiguration. Vanliga platser är /var/lib/mysql/, /var/run/mysqld/ och /usr/local/mysql/data/. I allmänhet har filnamnet filnamnstillägget .pid och börjar med antingen mysqld eller systemets värdnamn.

    Stoppa MySQL-servern genom att skicka en normal kill (inte kill -9) till mysqld-processen, med hjälp av sökvägen till .pid-filen i följande kommando:

    shell> kill `cat /mysql-data-directory/host_name.pid`

    Notera användningen av backticks istället för framåtriktade citattecken med kommandot cat; dessa gör att utdata från cat ersätts med kill-kommandot.

  3. Skapa en textfil och placera följande kommando i den på en enda rad:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

    Spara filen med valfritt namn. För det här exemplet kommer filen att vara ~/mysql-init.

  4. Starta om MySQL-servern med det speciella alternativet --init-file=~/mysql-init:
    shell> mysqld_safe --init-file=~/mysql-init &

    Innehållet i init-filen körs vid serverstart, vilket ändrar root-lösenordet. Efter att servern har startat framgångsrikt bör du ta bort ~/mysql-init.

  5. Starta om servern normalt. Anslut till MySQL-servern genom att använda det nya lösenordet.

Alternativt, på vilken plattform som helst, kan mysql-klienten användas för att ställa in det nya lösenordet, även om det är ett mindre säkert sätt att återställa lösenordet (detaljerad instruktion här):

  1. Stoppa mysqld och starta om den med --skip-grant-tables --user=root-alternativen (Windows-användare utelämnar --user=root-delen).
  2. Anslut till mysqld-servern med detta kommando:
    shell> mysql -u root
  3. Ge följande uttalanden i mysql-klienten:
    mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
        ->                   WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Ersätt 'newpwd' med det faktiska root-lösenordet som du vill använda.

  4. Du bör kunna ansluta med det nya lösenordet.


  1. JSON i SQL Server

  2. Hur man använder parameter med LIKE i SQL Server Compact Edition

  3. Hur man ställer in MariaDB för att använda vertikal utdata

  4. Hur man hanterar privilegier med roller i MySQL