druid连接池报错:sql injection violation, multi-statement not allow
druid连接池报错:sql injection violation, multi-statement not allow
需要配置druid的 multi-statement-allow属性为true,但是在boot的配置文件里配置了也没有生效,只能改用@bean的方式重新配置datasource
package com.epoch.boot;
import com.alibaba.druid.filter.Filter;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.wall.WallConfig;
import com.alibaba.druid.wall.WallFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.List;
/**
* @author liujy
* @date 2020/4/27 17:36
**/
@Configuration
public class DruidConfig {
//使用连接池dataSource
@Primary
@Bean
@ConfigurationProperties(prefix = "spring.datasource.druid")
public DataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
List<Filter> filterList = new ArrayList<>();
filterList.add(wallFilter());
filterList.add(statFilter());
druidDataSource.setProxyFilters(filterList);
return druidDataSource;
}
@Bean
public WallFilter wallFilter() {
WallFilter wallFilter = new WallFilter();
wallFilter.setConfig(wallConfig());
return wallFilter;
}
@Bean
public StatFilter statFilter(){
StatFilter statFilter = new StatFilter();
return statFilter;
}
@Bean
public WallConfig wallConfig() {
WallConfig config = new WallConfig();
config.setMultiStatementAllow(true);//允许一次执行多条语句
return config;
}
}
数据库配置信息
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/console?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
username: root
password: root
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
filters: stat,wall,log4j2
initial-size: 10
log-abandoned: true
max-active: 200
max-pool-prepared-statement-per-connection-size: 20
max-wait: 6000
min-evictable-idle-time-millis: 300000
min-idle: 5
pool-prepared-statements: true
remove-abandoned: true
remove-abandoned-timeout: 1800
test-on-borrow: false
test-on-return: false
test-while-idle: true
time-between-eviction-runs-millis: 60000
validation-query: SELECT 1 FROM DUAL
注意:此处jdbc的url要添加字符串&allowMultiQueries=true
druid连接池报错:sql injection violation, multi-statement not allow的更多相关文章
- mysql报错sql injection violation, syntax error: syntax error, expect RPAREN, actual IDENTIFIER
mysql报错sql injection violation, syntax error: syntax error, expect RPAREN, actual IDENTIFIER 处理,在控制台 ...
- Druid连接池 报错:abandon connection原因分析
问题现象:使用Druid的数据库连接池,在进行一个查询SQL的时候,抛出了异常: [2017-10-20 01:40:59.269 ERROR com.alibaba.druid.pool.Druid ...
- Jfinal报错sql injection violation, multi-statement not allow
Jfinal报错: com.jfinal.plugin.activerecord.ActiveRecordException: java.sql.SQLException: sql injection ...
- 【转】java.sql.SQLException: statement is closed语句被关闭 druid连接池报错
我之前在用druid 1.0.28版本也出现过这个问题, 现象就是: 报这个错的时候, 往往会出现在一条毫无错误的sql执行上报错, sql放到数据库上执行或者单独拎出来执行完全没问题, 但是为什么 ...
- redis运用连接池报错解决
redis使用连接池报错解决redis使用十几小时就一直报异常 redis.clients.jedis.exceptions.JedisConnectionException: Could not g ...
- druid sql黑名单 报异常 sql injection violation, part alway true condition not allow
最近使用druid,发现阿里这个连接池 真的很好用,可以监控到连接池活跃连接数 开辟到多少个连接数 关闭了多少个,对于我在项目中查看错误 问题,很有帮助, 但是最近发现里面 有条sql语句 被拦截了, ...
- druid报异常 “sql injection violation, part alway true condition not allow”的解决方案
使用durid连接池组件,执行sql时发现异常如下: Caused by: java.sql.SQLException: sql injection violation, part alway tru ...
- 连接池报错 Proxool Provider unable to load JAXP configurator file: proxool.xml
上篇博文讲到简易配置 proxool 连接池:http://www.cnblogs.com/linnuo/p/7232380.html 由于把说明注释留在了 proxool.xml 配置文件里导致配置 ...
- 详解Jedis连接池报错处理
在使用Jedis连接池模式下,比较常见的报错如下: redis.clients.jedis.exceptions.JedisConnectionException:Could not get a re ...
- springjdbc使用c3p0连接池报错 java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
MyMaincom.test.sunc.MyMaintestMethod(com.test.sunc.MyMain)org.springframework.beans.factory.BeanCrea ...
随机推荐
- 【转载】 解决运行docker命令要用sudo的问题
将当前登录的用户添加到docker组中,这样以后在访问docker时就不用在sudo了 1. 查看是否创建docker 组 cat /etc/group | grep docker 2.创建docke ...
- 【转载】 一块GPU顶数千个CPU内核,英伟达的这个强化学习利器技术细节终于公开了
原文地址: https://mp.weixin.qq.com/s/FmFqmIqmknkpBQbNb2ioDA ============================================ ...
- RabbitMq高级特性之延迟队列 通俗易懂 超详细 【内含案例】
RabbitMq高级特性之延迟队列 介绍 消息进入队列后不能立即被消费,到达指定时间后才可被消费 实现 结合以下两种即可达到延迟队列 RabbitMq高级特性之TTL过期时间 RabbitMq高级特性 ...
- [nRF24L01+] 2. 芯片介绍
2. 芯片介绍 2.1. 特点 电源管理 掉电模式: 900nA 待机1模式: 26uA 2.2. 方框图
- Win32_SDK 屏蔽Edit控件的右键系统菜单方法
找了好久的方法,网上都是基于mfc的方法,现在找到解决方法了,分享给大家, 就是要重新设置Edit控件的回调函数 //Win32 SDK 下Edit控件屏蔽右键系统菜单方法 第一步: //声明保存旧的 ...
- zabbix报错大全
zabbix报错 https://www.cnblogs.com/losbyday/category/876878.html作者总结的很全棒 1.在启动zabbix-agent 时系统日志输出 PID ...
- Pipenv 使用
Pipenv 是 Python 官方推荐的依赖管理工具,旨在简化 pip 和 virtualenv 的使用.其使用 Pipfile 和 Pipfile.lock 来管理项目的依赖和虚拟环境. 安装 p ...
- Poetry 使用
Poetry 是当下热门的 Python 包管理器.Poetry 注重为项目提供完整的生命周期管理,包括构建.打包.发布和依赖管理.其使用 pyproject.toml 文件来管理项目的依赖和构建配置 ...
- 自动调用关闭释放资源try-with-resources
try-with-resources自动执行释放资源 看到了try这个关键字立马就应该能想到异常处理机制try-catch-finally语句块.这里要说的东西和异常处理背后的机制其实几乎是一样的,只 ...
- 【YashanDB知识库】YAS-00220, utf8 sequence is wrong
[问题分类]功能使用 [关键字]YAS-00220,utf8 sequence is wrong [问题描述]在数据库执行select语句时,或者在exp导出数据库用户时报这个错误,表字段中同时存在n ...