Du kan använda init-filerna. Se den officiella MySQL-dokumentationen om Hur man återställer rotlösenordet (inklusive kommentarer för alternativa lösningar).
Så i princip med init-filer kan du lägga till alla SQL-frågor som du behöver för att fixa din åtkomst (som GRAND
, CREATE
, FLUSH PRIVILEGES
, etc.) till init-fil (vilken fil som helst).
Här är mitt exempel på att återställa root-kontot:
echo "CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';" > your_init_file.sql
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;" >> your_init_file.sql
echo "FLUSH PRIVILEGES;" >> your_init_file.sql
och efter att du har skapat din fil kan du köra:
killall mysqld
mysqld_safe --init-file=$PWD/your_init_file.sql
för att kontrollera om detta fungerade, tryck på Ctrl+Z och skriv:bg
för att köra processen från förgrunden till bakgrunden, verifiera sedan din åtkomst genom att:
mysql -u root -proot
mysql> show grants;
+-------------------------------------------------------------------------------------------------------------+
| Grants for [email protected] |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' |
Se även:
- Inget lösenord – inga problem på Everything MySQL
- Bug #28331:Otydligt felmeddelande när CREATE USER misslyckas på grund av duplicerad nyckel