我无法让我的Django项目正确加载我的数据库。它抛出了这个错误。
我正在使用Django运行MariaDB,并且我卸载了所有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,如果它完全相关的话。
答案 0 :(得分:2)
这是我用来为Django项目重新创建MySQL数据库的方法:
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
}
警告:这会丢弃并重新创建!
其中:
在您的环境中导出那些
答案 1 :(得分:1)
您的错误会为您提供线索,告知您哪里出错......
django.db.utils.OperationalError: (1045, "Access denied for user '<user>'@'localhost' (using password: YES)")
这意味着django
尝试使用用户user
访问数据库,而不是您在settings.py
中定义的内容。
我猜您在执行python manage.py migrate
之前忘记执行runserver
,因为您的设置尚未反映在django
引擎中。
答案 2 :(得分:1)
可能是由于Django尝试使用错误的用户而不是您在MySQL DB中设置的用户
更改USERNAME中的设置-> USER可以提供帮助:)
我遇到
错误“ NAME”:“数据库名称”, 'USERNAME':'root', '密码':'******', 'PORT':'3306', 'HOST':'localhost',
但它与---
一起使用“ NAME”:“数据库名称”, 'USER':'root', '密码':'********', 'PORT':'3306', 'HOST':'localhost',