sql >> Databasteknik >  >> RDS >> Mysql

Hur man återställer MySQL Root Users Password

ServerPilot konfigurerar MySQL för att hantera databaser på din server. Vanligtvis när du är inloggad på SSH som root användare behöver du bara skriva följande vid kommandoraden (SSH) för att komma åt MySQL:

mysql

Detta kommando kommer automatiskt att referera till filen som innehåller MySQL root användarens MySQL-lösenord så att du inte behöver skriva in det. Rotlösenordet för MySQL finns i den här filen:

/root/.my.cnf

Om du behöver ändra det lösenordet av någon anledning måste några steg vidtas. Observera att det finns två olika processer här:en för en situation där root MySQL-lösenordet för närvarande fungerar, och en för ett icke-fungerande root MySQL-lösenord.

Obs:MySQL-felloggen är ett bra ställe att hitta problem med MySQL, och den finns här:

/var/log/mysql/error.log
Varning! Vi rekommenderar att du tar en ögonblicksbild av servern innan du utför uppgifter som dessa.

Ändra ett fungerande MySQL-rotlösenord

Det här avsnittet handlar om att ändra ett MySQL root-lösenord som fungerar, vilket innebär att du kan logga in på MySQL som root användaren genom att helt enkelt skriva mysql vid SSH-prompten. Det kommer inte att finnas någon driftstopp för den här processen om dessa steg följs.

Logga in på SSH som root användare, logga sedan in på MySQL genom att skriva:

mysql

Vid MySQL-prompten skriver du följande, men ersätt lägg-ditt-nya-lösenord-här med det faktiska lösenord du vill använda. Du måste lämna de enskilda citattecken runt det nya lösenordet. Vänligen notera lösenordet, eftersom du måste lägga in det i en fil i nästa steg.

SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');

Avsluta MySQL genom att skriva:

quit

Därefter måste du uppdatera filen som innehåller MySQL rot användarens lösenord så att du kan SSH till din server som root och kör mysql kommando utan att skriva ett lösenord.

sudo nano /root/.my.cnf
För ytterligare information om hur du använder nano textredigerare, se vår guide.

Uppdatera lösenordsfältet till det nya lösenordet du angav ovan, spara och avsluta textredigeraren.

Slutligen, testa för att se till att det nya lösenordet fungerar:

mysql

Allt klart!

Ändra ett förlorat eller icke-fungerande MySQL-rootlösenord

Det här avsnittet handlar om att återfå root-åtkomst till MySQL när det här felet tas emot:

ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
Varning! Denna process kommer att ta MySQL offline under en kort tidsperiod; det är bäst att utföra detta under lågtrafik, då dina användare kommer att påverkas minst.

Logga in på din server via SSH som root användare och stoppa MySQL genom att skriva:

sudo service mysql stop

Kör sedan följande kommando:

sudo test ! -e /var/run/mysqld && sudo mkdir -p /var/run/mysqld && sudo chown mysql:mysql /var/run/mysqld

Det kommer inte att returnera någon utdata. Starta MySQL i ett speciellt läge genom att skriva detta:

sudo mysqld --skip-grant-tables --skip-networking &

Dess utdata bör likna nedan, även om siffran som visas kommer att vara annorlunda:

sudo mysqld --skip-grant-tables --skip-networking &
[1] 14744

Du kommer sedan tillbaka till standard SSH-prompten. Skriv nu följande för att logga in på MySQL:

mysql

Du kommer inte att bli tillfrågad om ett lösenord, och det bör se ut ungefär så här:

~# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25-0ubuntu0.16.04.2-log (Ubuntu)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
Owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Ge följande kommando som låter dig ändra lösenordet:

FLUSH PRIVILEGES;

Vilket ger:

Query OK, 0 rows affected (0.00 sec)

Därefter återställer vi det faktiska lösenordet genom att ändra lägg-ditt-nya-lösenord-här till ditt faktiska lösenord. Vänligen notera lösenordet du anger, eftersom vi måste ange det i /root/.my.cnf fil när vi är klara, och behåll även de enskilda citattecken runt det nya lösenordet.

SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');

Du bör få ett meddelande som:

Query OK, 0 rows affected, 1 warning (0.00 sec)

Avsluta MySQL genom att skriva:

quit

Skriv sedan följande kommando:

sudo killall mysqld

Ingen utdata kommer att returneras. Nu startar vi MySQL normalt:

sudo service mysql start

Slutligen, om du ändrade lösenordet från det som fanns i /root/.my.cnf måste du uppdatera den filen. Om du använde samma värde behöver du inte utföra detta steg:

sudo nano /root/.my.cnf

Uppdatera lösenordsfältet där, spara och avsluta textredigeraren.

Du bör nu kunna logga in på MySQL som root användare genom att skriva följande kommando:

mysql

  1. Ta bort databaspostmeddelanden från msdb-databasen i SQL Server (T-SQL)

  2. CURDATE() Exempel – MySQL

  3. Så här återställer du identitetskolumnvärde i SQL Server-tabell - SQL Server / T-SQL självstudie del 43

  4. decimal(s,p) eller tal(s,p)?