Django 中 "Data truncated for column xxx" 解决方法
这篇讲的是作者在将 Django 项目从开发环境部署到线上时,遇到的一个典型“坑”:所有中文数据写入 MySQL 都会失败,并抛出“Data truncated for column xxx”的错误。这立刻将问题指向了字符集编码。 文章详细复盘了排查过程。根因在于,尽管开发环境一切正常,但外网服务器的 MySQL 数据库、表、字段或客户端连接字符集配置可能存在不一致或遗漏(例如未统一为 utf8mb4)。作者不仅展示了问题现象,更关键的是拆解了从检查 MySQL 配置(如 my.cnf),到调整 Django 数据库连接参数,再到确保 Django 模型字段定义正确的全链路解决方案。 最后,文章总结了这类问题的通用排查清单,强调了在项目迁移或搭建初期,就系统性规划和验证字符集配置的重要性,避免后续开发中因编码问题导致数据损坏或业务异常。对于处理中英文混合内容的开发者来说,这套排查思路非常实用。