一次Spring Boot+mysql+mybatis排错[java.sql.SQLSyntaxErrorException: Unknown error 1146]

213 篇文章 3 订阅

运行spring boot项目(mybatis),
运行之后,报错:

### SQL: SELECT  id, ...email,username  FROM xx_user     WHERE (username = ?)
### Cause: java.sql.SQLSyntaxErrorException: Unknown error 1146
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown error 1146

抓包,发现
确定数据库:
在这里插入图片描述

在这里插入图片描述
自己在这个数据库里查询,碰到一样的问题,看来并不是sql语句的语法问题,而是没有这个表。可能是数据库弄错了。

之前已经执行了sql语句创建了数据库,但是那个数据库跟这个程序连接的并不一样。

于是更改一下jdbc.properties文件中的连接的数据库名,重新启动。

但是又报了这个错,

com.mysql.cj.exceptions.CJException: Unknown error 1044

发现是某用户没有访问某数据库的权限,于是重新授予这个数据库给这个用户,再次启动。
然后登录:

这次终于登录成功了:
在这里插入图片描述
在这里插入图片描述

然后执行查询的时候又发现这个:

java.sql.SQLSyntaxErrorException: Unknown error 1054

字段不存在,原来是请求某个请求时,
在这里插入图片描述
会执行这个SQL语句:
在这里插入图片描述

而我们现在并没有这些字段:
于是手动创建它,并插入数据(不然哪儿来的sqli)

CREATE TABLE IF NOT EXISTS `sys_function`(`id` INT UNSIGNED AUTO_INCREMENT,`dsource` VARCHAR(100), `createtime` VARCHAR(100), `isedit` VARCHAR(100), `name` VARCHAR(100), `tname` VARCHAR(100), `menuid` VARCHAR(100), `isadd` VARCHAR(100), `isdelete` VARCHAR(100), `type` VARCHAR(100), `isexport` VARCHAR(100), PRIMARY KEY (`id`));

INSERT INTO sys_function(id,dsource,createtime,isedit,name,tname,menuid,isadd,isdelete,type,isexport) values (1,'1','1','1','1','1','1','1','1','1','1');

create table `sys_dsource`(`id` INT UNSIGNED AUTO_INCREMENT,         `status` VARCHAR(100),         `dbname` VARCHAR(100),         `comment`VARCHAR(100), PRIMARY KEY (`id`));

insert into sys_dsource(id, status, dbname, comment) values(1, '1', '1', '1');

这下就有值了:
在这里插入图片描述

使用这个请求:

pageSize=10&pageNumber=1&order=desc&sort=if(1=1,sleep(1),1)

发现只sleep了1s
看看流量里的sql语句是啥:
在这里插入图片描述

参考:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值