You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django执行manage.py dbshell报MySQL 1045错误,foo用户需补充什么权限?

问题排查与解决方案

你当前为foo'@'localhost配置的权限已经完全满足运行dbshell访问foodb的要求,报错ERROR 1045 (28000): Access denied属于身份验证失败,而非权限不足导致的,可按照以下步骤排查:

  • 第一步:核对Django数据库配置
    打开项目settings.py文件中的DATABASES配置段,确认PASSWORD字段值和你设置的qux完全一致,排查是否存在多写空格、大小写错误、特殊字符未转义的问题。
  • 第二步:修复MySQL身份验证插件兼容性问题
    部分高版本MySQL默认使用caching_sha2_password作为身份验证插件,旧版本的Django MySQL驱动无法兼容,可执行以下SQL修改用户验证插件并重置密码:
    ALTER USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'qux';
    FLUSH PRIVILEGES;
    
  • 第三步:排查高优先级匹配用户冲突
    MySQL会优先匹配更精确的用户规则,如果你本地存在''@'localhost'匿名用户、或者foo'@'127.0.0.1'用户,可能导致匹配规则异常。可执行以下操作修复:
    1. 先测试本地直连是否正常:执行命令mysql -u foo -p foodb,输入密码qux,如果可以正常登录则说明是Django配置问题,否则为MySQL侧配置问题
    2. 如直连失败,可删除匿名用户避免匹配冲突:
    DROP USER IF EXISTS ''@'localhost';
    FLUSH PRIVILEGES;
    
    1. 如果你的Django配置中HOST字段填的是127.0.0.1而非localhost,需要同步给foo'@'127.0.0.1'授权:
    CREATE USER IF NOT EXISTS 'foo'@'127.0.0.1' IDENTIFIED BY 'qux';
    GRANT ALL ON foodb.* to 'foo'@'127.0.0.1';
    FLUSH PRIVILEGES;
    

内容的提问来源于stack exchange,提问作者Vishal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 02:45:04