Istnieją podobne pytania do tego, ale nie znajduję niczego, co rozwiązałoby mój problem.
Pracuję nad projektem django i dokonałem zmiany bazy danych i chcę przenieść tę zmianę do wersji produkcyjnej. Więc biegnę
python manage.py migrate
Ale otrzymuję ten błąd
OperationalError: (1045, "Access denied for user "root"@"localhost" (using password: NO)")
Z tego, co rozumiem, nie mogę mieć pozwolenia na uruchomienie migracji, ale próbowałem
grant all privileges on *.* to root@localhost identified by "password" with grant option;
i ich różne kombinacje, ale bezskutecznie.
W moim local_settings.py mam
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"USER": "root",
"PASSWORD": "password",
"HOST": "127.0.0.1",
"NAME": "stratinvnet",
},
}
Próbowałem zmienić 127.0.0.1
do localhost
i to wydaje się nie mieć znaczenia. Próbowałem również usunąć hasło z DATABASES
obiekt.
Za to, co jest warte, oto moje GRANTS
tabela w mysql.
GRANT ALL PRIVILEGES ON *.* TO "root"@"localhost" IDENTIFIED BY PASSWORD "*5FE8B16533FAE91D61522C9A6811F3F709147255" WITH GRANT OPTION |
| GRANT PROXY ON ""@"" TO "root"@"localhost" WITH GRANT OPTION
a oto tabela użytkowników.
user | host | password |
+------------+-----------+-------------------------------------------+
| root | localhost | *5FE8B16533FAE91D61522C9A6811F3F709147255 |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| root | % | *944B67F866A66B9DDD96024A97EBFDC886FC41F6 |
| phpmyadmin | localhost | *5FE8B16533FAE91D61522C9A6811F3F709147255 |
Odpowiedzi:
0 dla odpowiedzi № 1wygląda na to, że używasz pliku skarpet dla mysql, spróbuj zamienić:
"HOST": "127.0.0.1",
z tym:
"HOST": "/var/lib/mysql/mysql.sock", # "HOST": "localhost",