目录
1、 Out of sort memory,consider increasing server sort buffer size
4、MySQL:Data truncation: Invalid JSON text
5、MySQL:Duplicate entry ‘xx‘ for key ‘xxxx.PRIMARY‘
6、Mongdb:com.mongodb.MongoQueryException:....'Regular expression is invalid:....'
7、在MyBatis-Plus XML中使用for循环插入数据,如果数据量太大可能会存在性能问题和内存溢出等问题
8、MySQL:foreign key constraint fails
9、Mongdb:com.mongdb.internal.connection.SocketStream
1、Sql 异常
1、SQL Error
1、 Out of sort memory,consider increasing server sort buffer size
...- SQL Error: 1038,SQLState:HY001
...- Out of sort memory,consider increasing server sort buffer size
网上解决方案:
1、设置sort_buffer_size大小。测试完,不好用。
SET GLOBAL sort_buffer_size = 1024*1024;
SET SESSION sort_buffer_size = 1024*1024;
show variables like '%sort_buffer_size%';
2、优化SQL语句
3、我遇到的情况是创建MySQL数据库,选择的排序规则:utf8mb4_0900_ai_ci,经过SQL语句修正库和字段排序规则为utf8mb4_general_ci后,测试还是有此问题。
--重新创建数据库,选择排序规则utf8mb4_general_ci。解决问题。
4、MySQL版本大于8.0.17且小于8.0.28的会存在此问题,此问题在8.0.28版本已修复
2、MySQL排序规则不同关联报错
..- Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='
网上解决方案:
COLLATE 的方式转换使得排序规则相同。SQL语句后,增加COLLATE utf8mb4_general_ci
3、MySQL ....'LIMIT 15'
现象:Mybatis-plus框架查询拼接2次LIMIT 15
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error
in your SQL syntax; check the manual that corresponds to your MySQL server version for
the right syntax to use near 'LIMIT 15' at line 1
原因:
此错误,Mybatis-plus框架中分页的@Bean被注入多次,一次是当前项目定义的@Bean 分页,
还有是引入的依赖jar中的@Bean 分页
解决方案:去掉一个@Bean分页配置
4、MySQL:Data truncation: Invalid JSON text
### Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation:
Invalid JSON text: "Invalid value." at positopn.....
错误原因,数据库中的字段需要json类型的数据,非json类型的数据时就会报此类错误!
建议打断点查看要插入数据库的json数据
==>java byte 类型 数据:X'22' set<xx>类型转json格式有问题....
修改类中属性 lombok注解,不生成get方法
@Getter(value = AccessLevel.PRIVATE)
private byte[] xxxBytes;
5、MySQL:Duplicate entry ‘xx‘ for key ‘xxxx.PRIMARY‘
java.sql.SQLIntegrityConstraintViolationException:Duplicate entry ‘xx‘ for key ‘xxxx.PRIMARY‘
原因:主键设置重复,或者说是主键冲突
解决方案:
隔山打牛: 我mybatis-plus框架,6-7张关联表,一张表插入,导致另一张表id关联插入,
使用对象insert插入,bean对象copy导致,对象引用地址相同,导致ID关联主键等会冲突。
解决:
插入对象 克隆新的对象 implements Cloneable{
//重写clone方法...自行百度学习
}
6、Mongdb:com.mongodb.MongoQueryException:....'Regular expression is invalid:....'
很大可能就是编写的正则有问题
7、在MyBatis-Plus XML中使用for循环插入数据,如果数据量太大可能会存在性能问题和内存溢出等问题
因为MyBatis-Plus XML中,for循环插入数据实际上是将SQL语句拼接成一个非常长的字符串,然后一次性执行。字符串长度超过MySQL最大限制(默认4MB),导致SQL执行失败
8、MySQL:foreign key constraint fails
Cannot add or update a child row: a foreign key constraint fails
网上这种解决方式有很多。根本原因:数据有问题,外键关联的表中无此数据。
如果出现外键关联插入不进去的情况。就是主表中没有要插入的数据,根本原因还是数据的问题。
解决方式:先把外键去掉,再插入数据,最后查看外键表中的列,是null或0空的数据,说明这些数据在主表中不存在。修改数据能匹配上即可。
9、Mongdb:com.mongdb.internal.connection.SocketStream
Java执行程序对Mongdb操作非常慢
解决方式:
1、追加Mongdb表的索引
2、减少大量查询数据库操作
10、MySQL:Duplicate key 6(attempted merging values 11 and 21)
因为在查询之前,代码上面有新增,和更新等其他操作,commit相当于事物的读未提交
11、SQL SERVER 重启电脑后,数据库起不来了
再重启SQL Server(MSSQLSERVER)报错误码17051,这个问题是:SQL Server 评估期已过。需要秘钥升级才能继续使用。
干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!