django.db.utils.OperationalError: (1045, доступ запрещен для пользователя '<user>' @ 'localhost'
Я не могу заставить мой проект Django правильно загрузить мою базу данных. Выкидывает эту ошибку.
Я запускаю MariaDB с Django, и я удалил все MySQL
Я добавил пользователя, запустив:
create database foo_db;
create user foo_user identified by 'foo_password';
grant all on foo_db.* to 'foo_user'@'%';
flush privileges;
как предложено в этом посте.
Консоль выдает мне эту ошибку обратно, когда я пытаюсь запустить ./manage.py runserver
django.db.utils.OperationalError: (1045, "Access denied for user '<user>'@'localhost' (using password: YES)")
Я выполнил команду 'create user' и создал пользователя в соответствии с моим сценарием установки, для которого по умолчанию установлено следующее:
'ENGINE': 'django.contrib.gis.db.backends.mysql',
'NAME': 'company_production',
'USER': 'companydev',
'PASSWORD': 'companydevpass',
'HOST': 'localhost',
'PORT': '',
'ATOMIC_REQUESTS': True
Я перепробовал все, что смог найти здесь, связанный с ошибкой, которую она выдает, но ничего не помогло.
Я использую Mac OSX 10.11.1 El Capitan и MariaDB версии 10.1.8, если это вообще актуально.
3 ответа
Вот что я использую для воссоздания баз данных MySQL для проектов Django:
tmp="/tmp/mysql-tools.sh.tmp"
setup-db ( ) {
cat <<EOF > $tmp
DROP DATABASE $DB;
CREATE DATABASE $DB;
GRANT USAGE on *.* to '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';
GRANT ALL PRIVILEGES ON ${DB}.* to '${DB_USER}'@'localhost';
EOF
cat $tmp
mysql -f -u ${MYSQL_ROOTUSR} -p${MYSQL_ROOTPWD} < $tmp
rm $tmp
}
Предупреждение: это падает и воссоздает!
Куда:
- DB: имя базы данных
- DB_USER: пользователь базы данных django
- DB_PASS: пароль для подключения mysql для пользователя базы данных Django
- MYSQL_ROOTUSR: пользователь root mysql (должен иметь разрешения для создания баз данных)
- MYSQL_ROOTPWD: пароль root для mysql
Экспортируйте их в свою среду
Возможно, из-за того, что Django попытался использовать не того пользователя, а не того, что вы настроили в MySQL DB
изменить настройки из USERNAME -> USER может помочь:)
Я получил ошибку с
"NAME": "имя базы данных", "USERNAME": "root", "PASSWORD": "******", "PORT": "3306", "HOST": "localhost",
Но это работало с ---
"NAME": "имя базы данных", "USER": "root", "PASSWORD": "********", "PORT": "3306", "HOST": "localhost",
Ваша ошибка дает вам понять, где вы идете не так...
django.db.utils.OperationalError: (1045, "Access denied for user '<user>'@'localhost' (using password: YES)")
Это означает django
пытаясь получить доступ к базе данных с пользователем user
не то, что вы определили в settings.py
,
Я думаю, что вы забыли сделать python manage.py migrate
прежде чем делать runserver
, так как ваши настройки еще не отражены внутри django
двигатель.