Django.db.utils.operational错误:(1045,拒绝用户“<user>”@“localhost”的访问

2024-04-28 21:58:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法让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;

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

我已经尝试了所有我能在这里找到的与它抛出的错误相关的东西,但是什么都没有起作用。

我运行的是MacOSX10.11.1ElCapitan和Mariadb10.1.8版,如果有关系的话。


Tags: 项目django用户命令数据库localhostdbfoo
3条回答

你的错误给了你一个线索你在哪里出错。。。

django.db.utils.OperationalError: (1045, "Access denied for user '<user>'@'localhost' (using password: YES)")

这意味着django试图使用用户user访问数据库,而不是在settings.py中定义的内容。

我想你在做python manage.py migrate之前忘记做runserver,因为你的设置还没有反映在django引擎中。

这可能是因为Django试图使用错误的用户,而不是在MySQL DB中设置的用户

从用户名更改设置->;用户可以帮助:)

我搞错了

“名称”:“数据库名称”, “用户名”:“根”, “密码”:“*****”, “端口”:“3306”, “主机”:“本地主机”

但它与——

“名称”:“数据库名称”, “用户”:“根”, '密码':'********', “端口”:“3306”, “主机”:“本地主机”

这是我用来为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:数据库名称
  • 数据库用户:django数据库用户
  • DB_PASS:Django数据库用户的mysql连接密码
  • MYSQL_ROOTUSR:MYSQL根用户(必须具有创建数据库的权限)
  • MYSQL_ROOTPWD:MYSQL根密码

在您的环境中导出这些

相关问题 更多 >