Django生产环境迁移遇MySQL 1142错误:用户缺少REFERENCES权限
Django生产环境MySQL迁移权限问题解决
错误原因
生产环境使用的MySQL用户test_user缺少对目标数据库中django_content_type表的REFERENCES权限,导致执行auth.0001_initial迁移时失败——该迁移需要创建关联到django_content_type的外键,必须具备此权限。
解决步骤
登录生产环境MySQL服务器,使用拥有超级权限的账号(如
root)执行授权命令:-- 仅授予REFERENCES权限,解决当前问题 GRANT REFERENCES ON `你的数据库名`.* TO 'test_user'@'22.161.40.219'; FLUSH PRIVILEGES;替换
你的数据库名为Django项目实际使用的数据库名称。可选:授予完整必要权限
为避免后续迁移或运行时出现其他权限问题,可以一次性授予Django所需的核心权限:GRANT CREATE, ALTER, DELETE, INSERT, SELECT, UPDATE, REFERENCES ON `你的数据库名`.* TO 'test_user'@'22.161.40.219'; FLUSH PRIVILEGES;重新执行迁移
回到Django项目目录,运行迁移命令继续完成剩余操作:python manage.py migrate
内容的提问来源于stack exchange,提问作者lolz
相关产品推荐
相关产品推荐

