sql >> Databasteknik >  >> RDS >> Mysql

Hur man återställer MySQL root-lösenord

MySQL är ett av de mest populära databashanteringssystemen för webbapplikationer. MySQL har ett root-lösenord eller ett lösenord på administratörsnivå, precis som många webbtjänster. Rotlösenorden tillåter användare att utföra alla funktioner på toppnivå i en databas.

När du ställer in MySQL, rekommenderas det att du ställer in ett root-lösenord för din databas för säkerhetsrelaterade problem. Detta betyder dock inte att du inte kan använda MySQL utan ett root-lösenord. Det är upp till dig att tänka på den aktuella uppgiften och bestämma om du ska ställa in ett root-lösenord eller inte.

Återställ MySQL root-lösenord

Det finns många frågor som ställs av MySQL-användare om "Hur man återställer MySQL root-lösenord." Om du hade ställt in ett root-lösenord men tyvärr tappat bort det, kommer den här artikelhandledningen att guida dig genom processen att återställa root-lösenordet både på Linux och Windows.

Förutsättningar

  • Befintlig MySQL-databas
  • Administratörsbehörigheter på datorn som är värd för MySQL-databasen
  • Åtkomst till Windows- eller Linux-server som kör MySQL
  • Kommandoradsgränssnitt eller terminalåtkomst
  • En textredigerare. (Oroa dig inte eftersom Windows-användare har Notepad installerat som standard på sina datorer medan Linux-användare har vim förinstallerat).

När du har alla de nämnda förutsättningarna, låt oss gå vidare och lära oss hur du återställer eller ändrar MySQL root-lösenordet.

Vi kommer att göra denna process på två fronter:

  1. Hur man återställer MySQL root-lösenord i Linux
  2. Hur man återställer MySQL root-lösenordet i Windows

1. Hur man återställer MySQL root-lösenord i Linux

Steg 1:Logga in på MySQL

När du startar upp i ditt Linux-operativsystem är det viktigt att logga in på samma användare som vanligtvis kör MySQL. Detta är avgörande för att undvika fel som att skapa filer som ägs av rotanvändaren, vilket kan orsaka skada på ditt system. Du kan dock lika gärna logga in som root-användare när du väl startar din MySQL-server. För att göra detta, se till att du startar MySQL med hjälp av syntaxen nedan.

user=fosslinux

Steg 2:Hitta .pid-filen som används av MySQL-tjänsten

Nästa steg är att hitta .pid-filen. I de flesta Linux-system lagras de på denna plats:

/var/lib/mysql or /var/run/mysqld/ or /usr/local/mysql/data/. 

Eftersom inte alla Linux-system är likadana kan du prova någon av sökvägarna som nämns ovan och se om du kan hitta filen. För att snabbt hitta filen kan du begränsa din sökning till filer som börjar med mysqld (eller ditt värdnamn) och slutar med .pid.

Obs! Att söka i filen kommer att förenkla processen; därför rekommenderar vi att du provar det.

När du har hittat filen, fortsätt nu till nästa steg

Steg 3:Döda mysqld / .pid-processen

Innan vi återställer eller skapar ett nytt root-lösenord måste vi först stoppa MySQL-servern. Detta kan göras genom att öppna terminalen och köra kommandoraden nedan:

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

Obs! Ersätt mysql-data-directory/host_name.pid med filnamnet vi hittade i steg 2. Det är också viktigt att ange hela sökvägen för att undvika att få fel.

Ytterligare tips: Se alltid till att du använder back-tick-tangenten istället för en nyckel med ett citattecken. Back-tick-tangenten är placerad ovanför tabb-tangenten på de flesta datorer och före den ena num-key.

Steg 4:Skapa en ny root-lösenordsfil

Nu är det dags att öppna din favorittextredigerare. För vårt fall ska vi använda Vim-textredigeraren. Öppna terminalen med genvägen CTRL + ALT + T, kör sedan kommandot nedan:

sudo vim mysql-init

Obs:om du får ett felmeddelande efter att ha kört kommandot ovan, kör det här kommandot för att fortsätta med de andra processerna:

sudo apt install vim

Lägg nu till raden nedan i filen:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Obs! När du manuellt skriver raden ovanför i terminalen, kom ihåg att inkludera alla semikolon och enstaka citattecken. Byt även ut "Nytt lösenord ” fras med det nya lösenordet du vill använda. Slutligen, se till att du använder ett starkt och säkert lösenord eller läs här för att lära dig hur du skapar ett starkt slumpmässigt lösenord på Linux.

Kommandot ovan fungerar bara på den värddator som du använder när du kör kommandot. Men om du planerar att ansluta till ett annat system, rekommenderas att ersätta localhost med det relevanta eller snarare lämpliga värdnamnet för att kommandot ska fungera. Om du inte gör det kommer du att stöta på fel.

När du har lagt till den nya filen i din textredigerare, spara den i:

 home/mysql-init.

Steg 5:Starta om MySQL-servern och tillämpa det nyskapade lösenordet

Det är dags att tillämpa de ändringar vi gjort i vårt nyskapade lösenord. Först ska vi starta om MySQL-servern genom att utföra kommandot nedan i terminalen:

mysqld --init-file=/home/mysql-init &

Detta kommando startar MySQL och tillämpar textfillösenordet som vi skapade i föregående steg. Beroende på vilken metod du använder för att starta din server kan du behöva lägga till andra alternativ som –defaults-file före kommandot init.

När du har använt det nyskapade lösenordet och startat om MySQL-servern är det dags att städa upp. Vi ska göra detta genom att logga in på din MySQL-server som root-användare och verifiera att lösenordet vi skapade faktiskt fungerar. När du har bekräftat att filen fungerar bra, fortsätt och radera filen vi skapade i steg 4 ovan.

2. Hur man återställer MySQL root-lösenord i Windows

Om du är en Windows-användare och skulle älska att lära dig hur du återställer ditt MySQL root-lösenord på Windows, läs den här artikeln till slutet.

Steg 1:Stoppa MySQL-servern.

Innan du stoppar MySQL-servern måste du kontrollera att du är inloggad som administratör.

  • Tryck på Win + R-tangenterna på Windows för att starta dialogrutan Kör typ:
services.msc
  • Klicka sedan på OK.
  • Bläddra ner genom listan över tjänster och leta reda på MySQL-tjänsten. Högerklicka på den och välj sedan alternativet Stopp som visas i bilden nedan:

Steg 2:Öppna din favorittextredigerare

I illustrationssyfte kommer vi att använda standardtextredigeraren för Notepad. Bli dock inte rädd om du har en annan textredigerare eftersom processerna är liknande.

  • Klicka nu på Start-menyn och sök efter Anteckningar. Klicka på den för att starta.

Alternativt kan du använda den här sökvägen för att hitta Anteckningar:meny>Windows-tillbehör>Anteckningar.

Steg 3:Skapa en ny lösenordstextfil med lösenordskommandot

Kopiera och klistra in syntaxen nedan i textredigeraren för att undvika fel när du skriver manuellt:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Liksom vi gjorde för Linux, se till att behålla semikolon och citattecken och byt ut NewPassword fras med det nya lösenordet du tänker använda på din MySQL.

Klicka på alternativet Arkiv och sedan Spara som för att spara textfilens lösenord i roten på din hårddisk. Spara filen som mysql-init.txt.

Följaktligen kan localhost-kommandot endast göra lösenordsändringar på ditt system. Därför, om du tänker ändra lösenordet på ett annat system som över nätverket, byt ut den lokala värden med lämpligt värdnamn för det andra systemet.

Steg 4:Starta CMD (kommandotolk)

  • Klicka på tangenterna Ctrl + Shift + Esc på ditt tangentbord
  • Välj filmenyn och kör sedan en ny uppgift
  • Skriv cmd.exe och markera kryssrutan Kör som administratör
  • Klicka på OK för att starta en kommandotolk med administratörsbehörighet.

Steg 5:Starta om MySQL Server och tillämpa den nya konfigurationsfilen

  • Genom att använda kommandotolken, navigera till MySQL-katalogen:
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
  • Skriv sedan in följande kommando:
mysqld --init-file=C:\\mysql-init.txt

Obs! Du bör ta hänsyn till att det finns två snedstreck före mysql-init prompt. Dessutom, om du använde ett annat namn än det vi använde som illustration i steg 2 ovan, bör du använda det namnet omedelbart efter de två omvända snedstreck utan mellanrum.

När detta är klart kan du nu logga in på din MySQL som root-användare med det nyskapade lösenordet.

Se till att du dubbelkollar för att försäkra dig om att det nya lösenordet fungerar felfritt. Efter bekräftelse, fortsätt och ta bort filen mysql-init.txt som vi lagrade i vår C:\-katalog.

Allmänna instruktioner för att återställa MySQL root-lösenord

De föregående avsnitten har tillhandahållit djupgående instruktioner om hur du återställer MySQL root-lösenord för Linux och Windows. Alternativt, när du använder vilken plattform som helst, kan du använda MySQL-klienten för att återställa lösenordet. Det är dock viktigt att notera att denna metod är mindre säker jämfört med de föregående metoderna.

För att använda MySQL-klienten, följ stegen som är markerade nedan:

1. Det första steget är att stoppa MySQL-servern. När du har stoppat, starta om den med alternativet nedan:

--skip-grant-tables

Det här alternativet gör det möjligt för vem som helst att ansluta utan lösenord men ger alla privilegier, och det inaktiverar kontohanteringsuttalanden som ÄNDRA ANVÄNDARE och STÄLL IN LÖSENORD.

Detta alternativ anses osäkert eftersom om servern startar med –skip-grant-tabellerna alternativet, hoppa över nätverk aktiveras genom att inaktivera fjärranslutningar.

2. Anslut nu till MySQL-servern genom att köra kommandot nedan:

mysql

Obs! inget lösenord krävs när du startar om MySQL-servern med MySQL-klienten eftersom servern startade med –skip-grant-tables .

3. Kör nu kommandot nedan i MySQL-klienten för att tala om för servern att ladda om beviljandetabellerna. Detta gör att kontohanteringsutdragen som hade stoppats tidigare att fungera igen:

mysql> FLUSH PRIVILEGES;

Efter att ha kört kommandot, kör kommandot ALTER USER för att ändra lösenordet. Byt ut MyNewPass , med det nya lösenordet du tänker använda.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Obs! För att ändra root-lösenordet för ett annat system, se till att ändra den lokala värden med systemets värdnamn.

Nu kan du ansluta till din MySQL-server som root-användare med lösenordet vi skapade. Stoppa sedan och starta om servern normalt utan –skip-grant-tabellerna alternativ och utan att aktivera variabeln Skip-Networking.

Det är allt du har lyckats återställa ditt MySQL root-lösenord.

Slutsats

Om du tidigare hade tilldelat ett root-lösenord till MySQL men glömt det, kan du återställa det genom att tilldela ett nytt lösenord till din MySQL, som visas i den här artikeln.

Obs! MySQL kräver inget root-lösenord för att ansluta. Men nackdelen med att inte tilldela ett root-lösenord till din MySQL är att den är osäker och du kan förlora dina värdesaker. Därför, om du aldrig har angett ett root-lösenord till din MySQL, rekommenderar vi starkt att du följer stegen som nämns ovan för att skapa ett och säkra din data och information.


  1. Del 2 – Hur man organiserar ett stort databasdiagram

  2. De bästa ETL-verktygen för att migrera till PostgreSQL

  3. Hur MATCH()-funktionen fungerar i MySQL

  4. Databaskryptering:De tre typerna och varför du behöver dem