- 正记
【ERROR-1】:for error : max_allowed_packet
【ANSWER FOR ERROR-1】:
(1)在mysql-cmd模式下,执行SQL命令“set global max_allowed_packet = 2*1024*1024*10;”;
(2)并且重启mysql服务(windows下win+R -> services.msc找到MySQL重启即可;linux下执行shell命令“service mysqld restart”)
【ERROR-2】:for error: Incorrect string value: ‘\xF0\x9F…’ for column ‘XXX’ at row
【ANSWER FOR ERROR-2】:
(1)这是由于linux下mysql执行create table建表命令时默认采用的时latin1字符集建表的,导致一些中文字符的写入而出现的异常信息;但是在windows下,mysql默认所建的表字符是utf8的,这也是为何相同的SQL语句由windows->linux下mysql中运行抛出该异常的原因
(2)解决该问题的是需要养成一个习惯,也即无论是什么时候什么环境下执行create table创建mysql数据库表时,务必指定特定的字符集和引擎,如SQL命令(含ENGINE=InnoDB DEFAULT CHARSET=utf8)
DROP TABLE IF EXISTS db_test
;
CREATE TABLE db_test
(
db_test_id
VARCHAR(100) NOT NULL COMMENT ‘测试Id’,
db_test_text
VARCHAR(255) NOT NULL COMMENT ‘测试文本’,
status
VARCHAR(2) DEFAULT ‘1’ COMMENT ‘状态,1启用(默认),-1禁用’,
update_time
datetime DEFAULT NULL COMMENT ‘更新时间’,
create_time
datetime NOT NULL COMMENT ‘创建时间’,
PRIMARY KEY (db_test_id
)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘测试表’;
【ERROR-3】:诡异描述(其实是自我错觉)之“在Springboot+Mybatis+MySQL系统架构下,某个接口的一条查询语句预期正常情况下是可以成功查询到1条返回结果的,但是只要在sql-where条件中对某个字段INDUSTRIENAME进行筛选时查询过来的结果总是0条数据,并且在navicat下手动执行该一模一样SQL语句及where条件是有1条结果的”
=》 经过一整天的折腾:从怀疑SQL的正确性,将SQL不断拆分 -> 去除各种where条件查询均可以有结果且只要加上该字段的筛选就是0条 -> 怀疑mybatis的配置有问题 -> 结果返回java对象的映射有问题->连接的数据库地址不正确->poatman传过来的数据不是预期的那个条件值->应用控制台将SQL语句以及条件值打印出来->重启IDE、重启mysql、重启电脑->……历经了一整天的崩溃过程,一度怀疑人生一度怀疑自己的程序猿生涯之路将就此终结,万万没有想到的是自己并没有错,错的居然是因为查询的条件传过来的值是中文,,,注意是中文、中文、中文,重要的事情强调三遍 -> 于是在建立数据源连接的地方,指定字符集utf8方解决这折腾了自己一整整天的“诡异”问题,归根结底还是自己定位查问题的方式需要优化,如果能够直接去查看mysql的log将问题很快就会被发现和解决!!
【ANSWER FOR ERROR-3】:
(0)留个心眼----尤其是MySQL数据库版本更新以及自主安装的MySQL中,特别注意当前出现的问题或者异常中有没有环节中是有中文、中文、中文的!!!!
(1)养成良好的msyql数据源配置习惯,如:
jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8
另外,需要注意的是数据源连接配置的几个选项“&autoReconnect=true&useSSL=true&useUnicode=true”等的含义及引发的问题;同时,若是中文在数据库中显示是“?”或者更新中文文字到数据库中出现异常,则是数据库的默认字符集问题,可通过SQL命令“show VARIABLES LIKE ‘%character%’”查看当前character-set-server的值
(2)不仅仅要开启的是应用的SQL-log日志,更需要去开启mysql自身log以实时查看或者落日志文件,保证能够查看到最终mysql中是实际执行的SQL语句,如果这个LOG开启了,只要一查看该log就能够知道该问题是由于java-mysql连接数据源的时候未指定字符集而导致的针对中文字符串为值得查询条件时,实际执行的查询语句并非是预期的那个中文字符串而是乱码(未设置utf8导致的mysql实际接收到是乱码)
#Issue 1: InnoDB: The innodb_system data file ‘ibdata1’ must be writable
按照菜鸟教程上的MySQL教程,在CentOS7上利用RPM包安装好MySQL后第一次启动服务:
systemctl start mysqld.service
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
复习的面试资料
这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)
- 第一部分:Java基础-中级-高级
- 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
- 第三部分:性能调优(JVM+MySQL+Tomcat)
- 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
- 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
- 第六部分:其他:并发编程+设计模式+数据结构与算法+网络
进阶学习笔记pdf
- Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法)
- Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis)
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
38-1713523005744)]
[外链图片转存中…(img-iOOHvNnr-1713523005745)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!