django.db.utils.OperationalError: (1045, Access denied for user '<user>'@'localhost'
django.db.utils.OperationalError: (1045, Access denied for user '<user>'@'localhost'
我无法让我的 Django 项目正确加载我的数据库。它抛出这个错误。
我正在 运行将 MariaDB 与 Django 结合使用,我卸载了所有 MySQL
我通过 运行ning 添加了用户:
create database foo_db;
create user foo_user identified by 'foo_password';
grant all on foo_db.* to 'foo_user'@'%';
flush privileges;
根据 this post.
的建议
当我尝试 运行 ./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
我已经尝试了我在这里能够找到的与抛出的错误相关的所有内容,但没有任何效果。
我正在 运行ning Mac OSX 10.11.1 El Capitan 和 MariaDB 版本 10.1.8 如果相关的话。
你的错误提示你哪里出错了...
django.db.utils.OperationalError: (1045, "Access denied for user '<user>'@'localhost' (using password: YES)")
这意味着 django
尝试使用用户 user
访问数据库,而不是您在 settings.py
中定义的用户。
我猜您忘记了在执行 runserver
之前执行 python manage.py migrate
,因为您的设置尚未反映在 django
引擎中。
这是我用来为 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
}
警告:这会掉落并重新创建!
其中:
- DB: 数据库名称
- DB_USER: django 数据库用户
- DB_PASS:Django 数据库用户mysql连接的密码
- MYSQL_ROOTUSR: mysql 根用户(必须有创建数据库的权限)
- MYSQL_ROOTPWD: mysql root 密码
导出您环境中的那些
这可能是由于 Django 尝试使用错误的用户而不是您在 MySQL DB
中设置的用户
从 USERNAME 更改设置 -> USER 可能会有所帮助:)
我收到
的错误
'NAME': 'database name',
'USERNAME':'root',
'PASSWORD':'******',
'PORT':'3306',
'HOST': 'localhost',
但它适用于 ---
'NAME': 'database name',
'USER':'root',
'PASSWORD':'********',
'PORT':'3306',
'HOST': 'localhost',
我无法让我的 Django 项目正确加载我的数据库。它抛出这个错误。
我正在 运行将 MariaDB 与 Django 结合使用,我卸载了所有 MySQL
我通过 运行ning 添加了用户:
create database foo_db;
create user foo_user identified by 'foo_password';
grant all on foo_db.* to 'foo_user'@'%';
flush privileges;
根据 this post.
的建议当我尝试 运行 ./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
我已经尝试了我在这里能够找到的与抛出的错误相关的所有内容,但没有任何效果。
我正在 运行ning Mac OSX 10.11.1 El Capitan 和 MariaDB 版本 10.1.8 如果相关的话。
你的错误提示你哪里出错了...
django.db.utils.OperationalError: (1045, "Access denied for user '<user>'@'localhost' (using password: YES)")
这意味着 django
尝试使用用户 user
访问数据库,而不是您在 settings.py
中定义的用户。
我猜您忘记了在执行 runserver
之前执行 python manage.py migrate
,因为您的设置尚未反映在 django
引擎中。
这是我用来为 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
}
警告:这会掉落并重新创建!
其中:
- DB: 数据库名称
- DB_USER: django 数据库用户
- DB_PASS:Django 数据库用户mysql连接的密码
- MYSQL_ROOTUSR: mysql 根用户(必须有创建数据库的权限)
- MYSQL_ROOTPWD: mysql root 密码
导出您环境中的那些
这可能是由于 Django 尝试使用错误的用户而不是您在 MySQL DB
中设置的用户从 USERNAME 更改设置 -> USER 可能会有所帮助:)
我收到
的错误'NAME': 'database name', 'USERNAME':'root', 'PASSWORD':'******', 'PORT':'3306', 'HOST': 'localhost',
但它适用于 ---
'NAME': 'database name', 'USER':'root', 'PASSWORD':'********', 'PORT':'3306', 'HOST': 'localhost',