sql >> Database teknologi >  >> RDS >> Mysql

Sådan nulstiller du MySQL Root Users Password

ServerPilot konfigurerer MySQL til at administrere databaser på din server. Typisk, når du er logget på SSH som rod bruger, behøver du kun at skrive følgende ved kommandolinjeprompten (SSH) for at få adgang til MySQL:

mysql

Denne kommando vil automatisk henvise til filen, som indeholder MySQL rod brugerens MySQL-adgangskode, så du ikke behøver at indtaste det. Rodadgangskoden til MySQL er indeholdt i denne fil:

/root/.my.cnf

Hvis du af en eller anden grund bliver nødt til at ændre adgangskoden, skal du tage et par skridt. Bemærk venligst, at der er to forskellige processer her:En for en situation, hvor root MySQL-adgangskoden fungerer i øjeblikket, og en for en ikke-fungerende root MySQL-adgangskode.

Bemærk:MySQL-fejlloggen er et godt sted at finde problemer med MySQL, og den er placeret her:

/var/log/mysql/error.log
Advarsel! Vi anbefaler at tage et serverøjebliksbillede, før du udfører opgaver som disse.

Ændring af en fungerende MySQL-rodadgangskode

Dette afsnit dækker ændring af en MySQL root-adgangskode, der virker, hvilket betyder, at du kan logge på MySQL som root bruger ved blot at skrive mysql ved SSH-prompten. Der vil ikke være nogen nedetid for denne proces, hvis disse trin følges.

Log ind på SSH som rod bruger, og log derefter ind på MySQL ved at skrive:

mysql

Ved MySQL-prompten skal du skrive følgende, men erstatte indsæt-dit-nye-adgangskode-her med den faktiske adgangskode, du vil bruge. Du skal efterlade de enkelte anførselstegn omkring det nye kodeord. Noter venligst adgangskoden, da du bliver nødt til at lægge den i en fil i næste trin.

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

Afslut MySQL ved at skrive:

quit

Dernæst skal du opdatere filen, der indeholder MySQL rod brugerens adgangskode, så du kan SSH ind på din server som root og kør mysql kommando uden at indtaste en adgangskode.

sudo nano /root/.my.cnf
For yderligere oplysninger om brug af nano teksteditor, se venligst vores guide.

Opdater adgangskodefeltet til det nye kodeord, du indtastede ovenfor, gem og afslut teksteditoren.

Til sidst, test for at sikre, at den nye adgangskode virker:

mysql

Alt klar!

Ændring af en mistet eller ikke-fungerende MySQL root-adgangskode

Dette afsnit dækker genvinding af root-adgang til MySQL, når du modtager denne fejl:

ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
Advarsel! Denne proces vil bringe MySQL offline i en kort periode; det er bedst at udføre dette uden for myldretiden, hvor dine brugere vil være mindst berørt.

Log ind på din server via SSH som rod bruger, og stop MySQL ved at skrive:

sudo service mysql stop

Kør derefter følgende kommando:

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

Det vil ikke returnere noget output. Start MySQL i en speciel tilstand ved at skrive dette:

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

Dens output bør ligne nedenfor, selvom det viste tal vil være anderledes:

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

Du vil derefter blive returneret til standard SSH-prompten. Indtast nu følgende for at logge på MySQL:

mysql

Du bliver ikke bedt om en adgangskode, og den skulle se nogenlunde sådan ud:

~# 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>

Udsted følgende kommando, der giver dig mulighed for at ændre adgangskoden:

FLUSH PRIVILEGES;

Hvilket giver:

Query OK, 0 rows affected (0.00 sec)

Dernæst nulstiller vi den faktiske adgangskode ved at ændre indsæt-dit-nye-adgangskode-her til dit egentlige kodeord. Noter venligst den adgangskode, du har angivet, da vi skal indtaste den i /root/.my.cnf fil, når vi er færdige, og behold venligst også de enkelte anførselstegn omkring det nye kodeord.

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

Du bør modtage en meddelelse såsom:

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

Afslut MySQL ved at skrive:

quit

Skriv derefter følgende kommando:

sudo killall mysqld

Ingen output vil blive returneret. Nu starter vi MySQL normalt:

sudo service mysql start

Til sidst, hvis du ændrede adgangskoden væk fra det, der var i /root/.my.cnf , skal du opdatere filen. Hvis du brugte den samme værdi, behøver du ikke udføre dette trin:

sudo nano /root/.my.cnf

Opdater adgangskodefeltet der, gem og afslut teksteditoren.

Du skulle nu være i stand til at logge ind på MySQL som rod bruger ved at skrive følgende kommando:

mysql

  1. Brug SCOPE_IDENTITY() til at returnere den sidst indsatte identitetsværdi i samme omfang (SQL-server)

  2. Hvordan får man poster tilfældigt fra Oracle-databasen?

  3. mysqli::query():Kunne ikke hente mysqli

  4. Hvordan reparerer man en serialiseret streng, der er blevet beskadiget af en forkert bytetællingslængde?