出现这个问题是因为druid有一个防火墙,默认是不允许批量操作的,目的是防止sql注入等风险。
如果你在url中设置了allowMultiQueries=false不允许批量操作。那么你应该如下配置:
spring: datasource: # 使用Druid连接池 type: com.alibaba.druid.pool.DruidDataSource #8.0以上版本用com.mysql.cj.jdbc.Driver,8.0以下版本用com.mysql.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://19*****:3306/**ount?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false username: g** password: g** druid: # 连接池的配置信息 # 初始化大小,最小,最大 initial-size: 5 min-idle: 5 maxActive: 20 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false # 打开PSCache,并且指定每个连接上PSCache的大小 # poolPreparedStatements: true # maxPoolPreparedStatementPerConnectionSize: 20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall,slf4j # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 配置DruidStatFilter web-stat-filter: enabled: true url-pattern: "/*" exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*" # 配置DruidStatViewServlet stat-view-servlet: # IP白名单(没有配置或者为空,则允许所有访问) # allow: 127.0.0.1 # IP黑名单 (存在共同时,deny优先于allow) # deny: 192.1**.*** # 禁用HTML页面上的“Reset All”功能 reset-enable: false # druid登录的账户名 login-username: adm* # druid登录的密码 login-password: 12*** # 不要写2个*号!要1个! url-pattern: "/druid/*" #这里配true才能访问监控页面! enabled: true
如果你已经有自己的一套数据源配置并允许数据库开启批量操作,或许你可以把(上面第29行的代码):
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall,slf4j
改为:
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,slf4j
来解决multi-statement not allow问题;
评论列表