温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
Clinic在HR上跑得好好的,一换MYSQL就可能冒出CQL类型事物甚至连接池问题。今天我们就沿自动配置链路把原因拆开。先看spring source到source auto configuration, 再到CP。MYSQL驱动连接池参数和HR默认值差异很大,不能只改一个URL。我确实只改了驱动和连接串,启动也能连上,但jpa键表示有些字段类型变了,SQL日志里还出现HR没有的方言写法。Hibernate方言必须显示指定mysql dialect.否则见表、分页、自增组件都可能走错策略,HR能跑,只是因为默认方言刚好匹配。连接池也要重新评估。H2式嵌入式连接几乎不占网络资源,MYSQL是独立服务,最大连接数超时泄露检测都要按真实负载调整。
01:04
那事物呢?我在HR上测试通过的常事物换MYSQL后偶尔出现所等待超时,是不是隔离级别和锁机制不一样?还有账号权限。MYSQL用户可能没有建表或修改原数据的权限,HR本地模式几乎不限制,这会导致初始化脚本静默失败。建议打开CQL日志和hery指标,用idea database two指连MYSQL查看真实表结构、执行计划和绘画状态,再和HR行为逐项对比。初始化数据也有坑,HR里能跑的data SQL换MYSQL后,可能因为日期格式或保留自报错,但应用启动不一定立刻失败。最小落地是固定驱动版本,显示方言调大连接,持超时开启慢SQL日志,再用一条真实业务链路在MYSQL上回归。
02:05
所以HR正常只是起点。真正连上MYSQL,必须重新验证类型、方言、事物、权限和连接池,才能避免上线后才发现问题。
我来说两句