Ответ 1
Запуск в консоли
mysql> grant all privileges on *.* to [email protected] identified by 'password' with grant option;
Я начал работать с django, и вот ошибка на "server server" после настройки "DATABASES" в settings.py
mysql_exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
Моя настройка .py часть кода:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'my_site', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': 'root', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
Я создал базу данных "my_site", и права установлены правильно (у root есть все привилегии). Я выполнил эту операцию с помощью phpmyadmin.
Что не так?
Запуск в консоли
mysql> grant all privileges on *.* to [email protected] identified by 'password' with grant option;
После битвы в течение двух дней я наконец нашел, что не так. Целые шаги по настройке базы данных mysql для сайта Django -
Ваш файл settings.py должен выглядеть так:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db', #Name of database you created
'USER': 'root', #Username of database you created
'PASSWORD':'', #Password of database you created
'HOST': '',
'PORT': '',
} }
Примечание. - Пароль и имя пользователя, приведенные выше, относятся к моему локальному хосту, который вы изменили на свой.
создать базу данных в localhost, назовите ее django_db (для этого вы можете использовать командную строку lamp/wamp/Xampp или mysql)
Отредактируйте файл settings.py и сохраните требуемый пароль, чтобы открыть свою базу данных в поле DATABASES, как указано ниже в коде.
открыть терминал.
Если вы используете виртуальную среду, то переключитесь на нее с помощью команды → workon env_name
Теперь cd app_name, например. cd mysite
шаги 3, 4 и 5 просто рассказывают, как добраться до папки, в которой файл manage.py найден в вашем приложении.
6.Чтобы проверить, что вы находитесь в правильной команде запуска каталога ls -l. Если вы найдете файл manage.py, тогда все будет правильно.
7.python manage.py migrate
Если у вас есть какая-либо ошибка, например: "Нет модуля с именем MySQLdb" при запуске над командой, вы можете посетить ссылку
8.python manage.py syncdb
9.python manage.py runningerver
10. Вам будет предложено ввести имя пользователя и пароль для администратора Django, предоставить все, что вы хотите открыть администратор сайта Django.
11. Проверьте, что у вас есть несколько таблиц в вашей базе данных в localhost на `http://localhost/phpmyadmin. Вы хорошо пойдете сейчас.
В инструкции сказано добавить
username
с оператором SQL как:
GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON winestores.* TO [email protected] IDENTIFIED by 'password';
Сделав это как root, я ушел и попытался войти в систему с новым пользователем. Я получил ERROR 1045. Я исправил его, выполнив вход в систему с правами root и повторно выполнив инструкцию SQL, за исключением
[email protected]
. Это сработало! Я не знаю почему? Может быть, это разница между IP-адресами "127.0.0.1" и "localhost"???
как прочитано на dev.mysql.com.
Для всех, кто сталкивается с этой проблемой, убедитесь, что пользователь базы данных хост localhost
. Если установлено значение %
, это не сработает, вам нужно будет добавить localhost
или изменить общие параметры безопасности.
ваша БД не распознает вашего пользователя root и пароль. Если вы можете перейти на phpmyAdmin и попытаться создать другого пользователя и пароль и назначить БД, если это не работает, попробуйте создать консоль с созданием пользователя и выделите все.
Это происходит, когда ваше имя пользователя или пароль введены неверно.... поэтому еще раз введите имя пользователя и пароль.
К вашему сведению, если вы используете XAMPP, перейдите непосредственно в localhost/phpmyad> Права, чтобы изменить это