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:
- 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
-
Bewerk het configuratiebestand met:
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
-
Voeg
skip-grant-tables
toe onder[mysqld]
blok en sla de wijzigingen op.
-
Herstart MySQL-service met:
sudo service mysql restart
-
Controleer de MySQL-servicestatus:
sudo service mysql status
-
Log in op mysql met:
$ mysql -u root
-
En verander het
root
wachtwoord:
mysql> SPOEL VOORRECHTEN;
mysql> ALTER GEBRUIKER ‘root’@’localhost’ GEDENTIFICEERD MET
mysql_native_password DOOR ‘MyNewPass’;
-
Maak de wijzigingen in het MySQL-configuratiebestand ongedaan door de regel
skip-grant-tables
te verwijderen of door er een#
(hash) op te zetten. -
Ten slotte herstart de MySQL-service en je bent klaar om te gaan.
Antwoord 2, autoriteit 61%
Ik kreeg mysqld
in 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 root
in mijn .env
bestanden, 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 .env
Bestand 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:
-
Controleer of MySQL is gestopt, zodat u deze opnieuw kunt starten met
skip-grant-tables
-
Zorg ervoor dat uw wachtwoord-update SQL-syntaxis correct is voor uw MySQL-versie
-
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');**