Django使用mysql数据库问题解决

在使用Django进行数据库操作时遇到错误,首先是因为加密方式不匹配导致的问题,通过`ALTER USER`命令修改了MySQL用户的加密方式。然后在运行migrate时遇到1042错误,这是由于用户权限不足。通过查看用户权限发现部分权限未开启,通过DBeaver赋予了用户必要的表权限,从而成功解决了问题,能够继续进行数据库迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇文章运行环境为:mysql8,Django3.2,python3.7.

学习使用Django进行到使用数据库时候,运行指令

python manage.py migrate

1:出现错误,显示为:

 这个问题可能是加密方式导致,修改加密方式即可解决.

输入下方指令即可查看当前账户密码的加密方式:

 输入指令:

alter user 'test2'@'10.118.8.169' identified with mysql_native_password by 'test2';

修改代码加密方式,再次查看,加密方式改变,问题解决。

 2: 接下来继续运行,出现错误码1042,

如下图所示:

django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table ((1142, "CREATE command denied to user 

 问题原因:当前用户没有相关权限。

执行以下指令,查看用户相关权限:

 

 可以看到使用的test2用户有些权限为N,这时候可以在此处通过命令行修改,我通过DBeaver解决,比较方便。如下图所示:

 赋予这个账户相关的表权限,即可运行。

如图所示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值