目录
一、问题描述
二、排查思路
三、总结反思
一、问题描述
场景:最近重构项目(定时任务独立成单独服务),存在日志入库定时任务,将程序搬迁到springboot新框架中,程序执行sql报错。
执行sql :load data local infile ... 时报错
异常信息:java.sql.SQLSyntaxErrorException: The used command is not allowed with this MySQL version
二、 排查思路
定位问题:
第一步:语法错误,首先想到将sql语句搬迁到navicat执行,如报错,则确实是语法问题,否则是其他问题(不是语法错误就不要纠结这一块了)。
第二步:考虑相对隐秘的语法错误,原因可能是字段名跟mysql关键字冲突的问题,或者是编码有问题等等
第三步:sql语法跟驱动包版本不匹配错误:我们便开始关注报错的地方,抛出语法错误的地方来自mysql驱动包,此时,我们主要考虑是sql语法跟mysql驱动包版本不契合。
三、总结反思
排查分析时,需要逐步分析,定位常见问题得形成通用套路(排查方法论),不应该每次排查都是毫无头绪。分步排查使用控制变量法。