mysql sql_mode=宽松模式,但出现Data truncation: Data too long for column xxx at row y

目录

1.1 数据库版本

1.2 数据库sql_mode未开启严格模式

2.排查

2.1 开启日志模式,用于查看历史执行sql

2.2 抓取执行sql日志

2.3 观察发现,确实有发送了update的语句,但是最后却发生了rollback

2.4 同时观察该时间范围内是否执行了其他语句

2.5 重启服务观察,是否启动时预设了一些参数

2.6 确认代码位置

2.7 总结


1.1 数据库版本

1.2 数据库sql_mode未开启严格模式

mysql

2.排查

2.1 开启日志模式,用于查看历史执行sql

SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON';  //日志开启

2.2 抓取执行sql日志

SELECT * from mysql.general_log where argument <> 'SELECT 1' ORDER BY event_time DESC;

(此处过滤select 1 是因为程序不断尝试通过select 1保持连接可用,所以剔除该项的干扰需要进行过滤)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值