mysql root-wachtwoord vergeten

Ik heb PHP MySQL al een tijdje niet meer gebruikt en nu moet ik het opnieuw gebruiken. Maar het probleem is dat ik het wachtwoord voor de MySQL-console vergeet. en krijg foutmelding #1045 bij het inloggen op PHPMyAdmin.

Op de MySQL-site zag ik een artikel over het opnieuw instellen van het root-wachtwoord( http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-windows)

Stappen zijn

create a mysql-init.txt file containing UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;

Ik heb het opgeslagen als C:\me\mysql-init

en in de opdrachtprompt schreef ik–

C:\wamp\bin\mysql\mysql5.5.8\bin\mysqld --init-file=C:\me\mysql-init.txt 

Ik heb het ook geprobeerd met dubbele backslashes..maar het werkt niet. MySQL-console vraagt om een wachtwoord en neemt de nieuwe niet. Wat doe ik verkeerd? Ik heb daar verschillende tabellen. Wat moet ik doen?

Bij voorbaat dank.


Antwoord 1, autoriteit 100%

Dit zijn de te volgen stappen:

  1. Zoek het MySQL-configuratiebestand met: $ mysql --help | grep -A 1 "Default options"

Op Ubuntu 16 is de bestandslocatie doorgaans /etc/mysql/mysql.conf.d/mysqld.cnf

  1. Bewerk het configuratiebestand met: $ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

  2. Voeg skip-grant-tablestoe onder [mysqld]blok en sla de wijzigingen op.

  1. Herstart MySQL-service met: sudo service mysql restart

  2. Controleer de MySQL-servicestatus: sudo service mysql status

  1. Log in op mysql met: $ mysql -u root

  2. En verander het rootwachtwoord:

mysql> SPOEL VOORRECHTEN;

mysql> ALTER GEBRUIKER ‘root’@’localhost’ GEDENTIFICEERD MET
mysql_native_password DOOR ‘MyNewPass’;

  1. Maak de wijzigingen in het MySQL-configuratiebestand ongedaan door de regel skip-grant-tableste verwijderen of door er een #(hash) op te zetten.

  2. Ten slotte herstart de MySQL-service en je bent klaar om te gaan.


Antwoord 2, autoriteit 61%

Ik kreeg mysqldin het antwoord van Adelave niet werkend. Maar dit werkte voor mij in plaats daarvan

stop en start mysql met –skip-grant-tables

service mysql.server stop
service mysql.server start --skip-grant-tables

verbind vervolgens met uw mysqld zonder gebruikersnaam/wachtwoord

mysql

werk vervolgens het wachtwoord op de mysql-opdrachtregel bij

mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; 
 mysql> FLUSH PRIVILEGES;
 mysql> \q

Start MySQL normaal opnieuw

service mysql.server restart

Antwoord 3, Autoriteit 56%

Probeer MySQL te starten met –Skip-substabellen

mysqld --skip-grant-tables

Maak vervolgens verbinding met uw MySQLD zonder gebruikersnaam / wachtwoord met de opdrachtregel MySQL

shell> mysql

Verwijder de opdracht

> mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
>        WHERE User='root'; mysql> FLUSH PRIVILEGES;

Antwoord 4, Autoriteit 22%

Als ander antwoord niet kan helpen, kunt u proberen MySQL te verwijderen / opnieuw installeren. Het werkt op mijn Ubuntu-server:

$sudo apt-get purge mysql*
$sudo apt-get autoremove
$sudo apt-get autoclean

Update-distributie

$sudo apt-get dist-upgrade

en installeer

$sudo apt-get install mysql-server

Antwoord 5

Mac OS Mojave

$ brew services stop mysql
$ pkill mysqld
// warning: deletes all tables
$ rm -rf /usr/local/var/mysql/
$ brew postinstall mysql
$ brew services restart mysql
$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'p4ssword';
Query OK, 0 rows affected (0.04 sec)
mysql> exit
Bye

Dan bent u weer normaal voor Dev.

$ sudo mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

Ik houd niet van het woord rootin mijn .envbestanden, dus ik doe dit meestal na, als u een site maakt, zoals www.hockeysticks.net:

#
CREATE DATABASE hockeysticks;
CREATE USER 'hockeysticks'@'localhost' IDENTIFIED BY 'hockeysticks';
GRANT ALL PRIVILEGES ON hockeysticks.* TO 'hockeysticks'@'localhost';

Dan uw LocalDEV .envBestand is eenvoudig:

DB_DATABASE=hockeysticks
DB_USERNAME=hockeysticks
DB_PASSWORD=hockeysticks

Opmerking : Als u uw databases behoudt, gebruikt u de skip-grant-tables-methode. Dat heeft 3 harde delen:

  1. Controleer of MySQL is gestopt, zodat u deze opnieuw kunt starten met skip-grant-tables

  2. Zorg ervoor dat uw wachtwoord-update SQL-syntaxis correct is voor uw MySQL-versie

  3. Zorg ervoor dat u het einde van de query bijvoegt met FLUSH PRIVELEGES;


Antwoord 6

Sqlyog gebruiken U kunt opdrachten uitvoeren

  • Gebruikerscreatie

CREATE USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
  • Autorisatie

GRANT ALL PRIVILEGES ON sakila.* TO 'tester'@'localhost'
  • Wachtwoord wijzigen in MySQL 8.0

ALTER USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'

(of als u de authenticatie_string kent, stel deze dan direct in om te updaten)

UPDATE mysql.user 
    SET authentication_string='*F9B62579F38BE95639ACB009D79427F2D617158F'  
WHERE USER='root'***

Wachtwoord wijzigen in lagere versies van mysql

GRANT USAGE ON *.\* TO 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
SET PASSWORD FOR 'tester'@'localhost' = PASSWORD('Pass123#d');**

Other episodes