接口报错500是什么意思_一次排查服务器端接口报500错误的经历

在博客后端系统中遇到发布或更新文章时接口返回500错误。通过排查服务器日志,发现并非uwsgi或nginx问题,而是数据库层面的`django.db.utils.OperationalError`。原因是数据量过大,超过MySQL的`max_allowed_packet`限制。解决方案是调整服务器上MySQL的`net_buffer_length`和`max_allowed_packet`参数,从而解决数据写入问题。
摘要由CSDN通过智能技术生成

1 出现问题情景

该问题来自我实习期间完成的一个博客后端系统,具体如下:当我辛辛苦苦在编辑器里完成文章格式修改(字数较多,一般大于3000字;字数较少时不会出现问题),以及相关目录和标签的选定,点击提交按钮打算提交到博客系统时发现:文章无法提交成功。或者修改文章,重新编辑文章时(PS:编辑后,字数较多,一般大于3000字),提交文章也出现类似问题。

然后,查看接口调用返回值发现:

发布文章接口和修改文章接口报服务器500错误。

2 排查问题

(1)首先,去服务器端查看uwsgi配置的报错信息:里面只给出了具体接口报500错误信息,没有具体错误原因显示;

(2)然后,去服务器端查看nginx的报错信息:里面也只给出了具体接口报500错误信息,没有具体错误原因显示;

(3)到了现在,就感觉很纳闷了。于是,我跑到本地测试相关接口,发现所有接口功能正常使用,没有什么报错信息提示。到了这一步,可以排除代码实现逻辑是没有问题,那么问题就应该出现在测试服务器环境的服务器部署问题,而且问题可能就出现在数据库配置部署。

(4)最后,按照(3)的想法,到测试环境开启博客系统后端服务的shell环境,执行具体发布和更新文章的接口方法,直接对后端数据进行添加和更新操作,于是发现以下报错:django.db.utils.OperationalError: (1153, "Got a packet bigger than 'max_allowed_packet' bytes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值