
MySql
文章平均质量分 72
记录MySql相关异常解决方案,操作技能,知识拓展
No8g攻城狮
》博主介绍:全网粉丝23W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域
》技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。
》感兴趣的可以先关注收藏起来,在工作中、生活上等遇到相关问题都可以给我留言咨询,希望帮助更多的人。
展开
-
【MySQL使用】show processlist 命令详解
通常我们通过top检查发现mysqlCPU或者iowait过高,那么解决这些问题都离不开show processlist查询当前mysql有些线程正在运行,然后分析其中的参数,找出那些有问题的线程,该kill的kill,该优化的优化!SHOW PROCESSLIST 是显示用户正在运行的线程,需要注意的是,除了root用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。SHOW PROCESSLIST 命令的含义便是显示哪些线程正在运行。原创 2024-03-04 17:54:34 · 3039 阅读 · 21 评论 -
【MySQL】MySQL如何查询和筛选存储的JSON数据?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在现代应用程序中得到了广泛的应用。处理和存储非结构化数据变得越来越重要。MySQL 是一种常用的关系型数据库管理系统,为了支持非结构化数据的存储和查询,于是 MySQL引入了对JSON数据类型的支持。MySQL从5.7.8版本开始添加了对JSON的支持,使得我们可以在MySQL数据库中存储和查询JSON格式的数据。本文将介绍如何使用MySQL查询和筛选存储的JSON数据,并提供相应的代码示例。原创 2024-01-03 20:13:19 · 3568 阅读 · 25 评论 -
【异常解决】MySQL数据库:Lock wait timeout exceeded; try restarting transaction问题解析及解决方案
通过查询知道是哪条语句锁了,图中红色语句为占用系统资源的语句,我们需要杀掉这个锁,执行 kill 线程id号。也就是说,这台 MySQL 服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问等等信息都保存在。查询未提交事务,查到一个一直没有提交的只读事务(trx_state=”LOCK WAIT”),找到对应线程,执行:kill 线程ID。表的引擎是 InnoDB 表类型,此时会出现锁等待的情况,在出现锁等待时,会根据参数。找到线程:kill 线程ID。原创 2023-12-19 20:25:33 · 24722 阅读 · 0 评论 -
【MySQL异常】MySQL出现 You can‘t specify target table for update in FROM clause 错误的解决方法
这张表,而在子查询的 FROM 语句中还从这张表查询出数据,这在MySQL中是不被允许的。之所以有这个规定,也是考虑到了数据安全。MySQL 数据库,版本号为 5.7.37(语句为 SELECT VERSION();,需求是更改这个表中的某一列的值。这个表,即不能依据某字段值做判断再来更新某字段的值。比如解决方案中的 SQL语句里有个 别名为 a。它的意思是说,不能在同一语句中,先。在MySQL中,可能会遇到。多一次,就可以避免这个错误。的结果再通过一个中间表。出同一表中的某些值,再。原创 2023-12-18 21:45:00 · 5058 阅读 · 11 评论 -
【MySQL异常】解决java.sql.SQLException: null, message from server: “Host xxx‘ is not allowed to connect to
如果自己无法控制服务器,那么需要请运维同学帮忙查看,检查MySQL服务器的防火墙设置,是否限制3306端口,可通过telnet方式,在web服务器上测通MySQL服务器上的端口是否测通。局域网内同事的电脑访问我电脑的数据库结果报错。经过上述原因排查,可以确定,这个问题的原因是数据库只允许 localhost 或 127.0.0.1 访问,不允许远程访问导致的。在我本机使用 IP 访问自己电脑上的MySQL数据库,结果同样报上述错误。host=% 含义,%是通配符,host标识是设置允许访问的ip地址。原创 2023-10-30 18:46:50 · 14460 阅读 · 22 评论 -
【MySQL异常解决】Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not
如果用户使用 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥;但是需要注意的是 AllowPublicKeyRetrieval=True 可能会导致恶意的代理通过中间人攻击(MITM)获取到明文密码,所以默认是关闭的,必须显式开启。将下面的keyValue添加到 spring.datasource.url 后面即可。在MySQL官方网站里的一个。原创 2023-07-17 15:04:02 · 6945 阅读 · 30 评论 -
【MySQL异常解决】Operation not allowed when innodb_forced_recovery > 0 的解决办法
Spring Boot 项目,能正常启动,就是访问数据库时后台报错,Cause: java.sql.SQLException: Operation not allowed when innodb_force_recovery > 0.,详情内容请看下图:请打开mysql的配置文件my.conf或my.ini 修改下面的代码:修改为即可。MySQL官方介绍手册:本文完结!原创 2023-07-17 14:45:03 · 2233 阅读 · 7 评论 -
【MySQL异常解决】MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
2、utf8mb4_0900_ai_ci 在 MySQL 8 以下是不被支持的,检查发现本地数据库为5.7,服务器MySQL数据库版本为 8.0.32。打开SQL脚本,查看 utf8mb4_0900_ai_ci 关键字,这是字段的字符集。utf8mb4_0900_ai_ci 全部替换为 utf8mb4_general_ci。从服务器MySQL中导出数据为SQL执行脚本后,在本地电脑执行导出的SQL脚本,将本地5.7版本的 MySQL数据库升级为 8.0以上即可。全部替换后重新执行sql文件即可。原创 2023-07-14 15:58:02 · 8383 阅读 · 23 评论 -
【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案
mybatisplus更新时,实体字段为空,数据库不更新的解决方案原创 2021-12-02 20:11:37 · 10061 阅读 · 8 评论 -
【数据库】数据库连接池配置 testOnBorrow
本文目录一、testOnBorrow含义二、testOnBorrow=false可能导致问题三、连接池如何判断连接是否有效的?四、总结Druid是一个由阿里开源的数据库连接池,Druid的配置非常丰富,但是设置不当会对生产环境造成严重影响,比如数据库的CPU使用率飙升会很严重,其实就是因为配置testOnBorrow由false修改为true导致的问题。一、testOnBorrow含义testOnBorrow:如果为true(默认为false),当应用向连接池申请连接时,连接池会原创 2021-07-22 17:54:28 · 4434 阅读 · 6 评论 -
【MySQL异常】1093 - You can‘t specify target table ‘daily_job‘ for update in FROM clause
本文目录一、背景描述二、错误原因三、解决方案3.1 解决方案1:修改SQL语句3.1 解决方案2:设置optimizer_switch的 derived_merge参数四、拓展一、背景描述通过sql语句想把这个表里的数据查询出来,然后根据查询出来的id把同一张表里的数据删除,如下是会报错的sql语句:DELETE FROM daily_job WHERE id IN ( SELECT id FROM daily_job WHERE create_user =原创 2021-07-20 11:10:02 · 1079 阅读 · 5 评论 -
【MySQL异常】Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNA
本文目录一、背景描述二、报错内容三、解决方案四、拓展一、背景描述MySQL版本:5.6.28, MySQL引擎 InnoDB。本地环境、开发环境、生产环境数据库版本一模一样。昨天晚上更新一个项目至生产环境,在本地和开发环境测试的都很正常,但是到生产环境之后,其中一张表中的数据更新有异常。而这张表,不管是MySQL引擎、还是字符集、还是表结构,三个环境一模一样。这就是奇怪的地方。二、报错内容关键报错内容为:Error updating database. Cause:.原创 2021-07-07 11:28:40 · 2383 阅读 · 5 评论 -
【Mybatis用法】Mybatis框架中一对一,一对多association和collection的使用举例方法
目录一、association 标签(一对一)二、association标签的使用一、association 标签(一对一)association通常用来映射一对一的关系,例如,有个类User,对应的实体类如下:(getter,setter方法省略)public class User { /** * 主键 */ private String id; /** * 用户姓名 */ private String user原创 2021-01-21 11:29:29 · 1020 阅读 · 12 评论 -
【Mybatis用法】Mybatis 高级结果映射,ResultMap Association,mybatis的一对多,多对一,以及多对多的配置和使用
本文目录一、背景描述二、解决方案一、背景描述需求:查询任务逾期记录时,把任务相关信息查询出来;表设计:任务相关信息是一张表(uoa_assignment),任务逾期记录是一张表(uoa_assignment_overdue_log);外键是任务主键(id);JavaBean:class Assignment, class AssignmentOverdueLog; class AssignmentOverdueLog中包含class Assignment对象。目的:在查询任务逾期原创 2020-10-29 16:43:22 · 922 阅读 · 5 评论 -
【MySQL用法】mybatis框架中,查询出来的实体类结果集中的某一个字段无法映射到实体类中的解决方案
本文目录一、背景描述二、解决方案一、背景描述根据某人出现的次数做一次汇总,数据库中并未存在此字段,但是前端页面中要用到,所以就需要在实体类中添加上一个逻辑字段(通过mybatis-plus里的@TableField注解可以解决此问题)SQL语句如下:<!--分组查询日/周/月报未读列表数据--><select id="queryList" resultType="com.iot.uoa.daily.entity.DailyNoReadReport"> S原创 2020-10-28 11:34:53 · 5310 阅读 · 6 评论 -
【MySQL用法】MySQL 中 datetime 和 timestamp 的区别与选择
本文目录一、区别1.1、占用空间1.2、表示范围1.3、时区二、选择在MySQL的使用过程中,经常用到的两个时间相关的类型分别为datetime和timestamp。如何在它们之间选择是建表时必要的考虑。下面汇总整理一下他们的区别和如何选择使用。一、区别1.1、占用空间1.2、表示范围timestamp 翻译为汉语即"时间戳",它是当前时间到 Unix元年(1970 年 1 月 1 日 0 时 0 分 0 秒)的秒数。对于某些时间的计算,如果是以 dateti原创 2020-10-20 13:14:53 · 1729 阅读 · 5 评论 -
【MySQL用法】MySQL中大于,大于等于,小于,小于等于的转义写法
由于在Mybatis框架的xml中,我们常用的大于(>)小于(<),大于等于(>=)小于等于(<=)解析的时候会经常出问题,导致编译报错,所以就需要对其进行转译才能通过。以下是我整理出来记录在这里方便以后使用,也希望能帮助用到的小伙伴哦~~~左边就是原来的符号,右边就是在mybatis中代替的符号原符号 Mybatis中替换的符号 备注 例子 > > A > B >= &.原创 2020-10-20 12:56:16 · 50038 阅读 · 5 评论 -
【MySQL用法】Mysql字符串截取总结:left()函数、right()函数、substring()函数、substring_index()函数
在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些,mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结:left()、right()、substring()、substring_index()。语法:LEFT(str,len)Returns the leftmost len characters from the string str, or NULL if any argument is NULL.原创 2020-06-01 21:15:40 · 1505 阅读 · 5 评论 -
【MySQL异常】MySQL事务锁问题----lock wait timeout exceeded; try restarting transaction
现象描述: SQL响应时间超长,耗时几十秒才返回错误提示,后台日志中出现lock wait timeout exceeded; try restarting transaction的错误问题场景: 1、在同一事务内先后对同一条数据进行插入和更新操作; 2、多台服务器操作同一数据库; 3、瞬时出现高并发现象;问题原因: 1、在高并发的情况下,Spring事物造成...原创 2020-04-16 20:42:48 · 715 阅读 · 4 评论 -
【MySQL异常】ExecutorException: Error getting generated key or setting result to parameter object
本文目录1、报错信息2、错误原因3、解决方法方案1:方案2:1、报错信息运行环境:springboot + mybatis,数据库为mysql,映射xml文件配置信息useGeneratedKeys="true"最近在检查一个项目,业务是向数据库中插入一条数据(记录), 发现了一个错,报错信息如下:Caused by: org.apache.ibatis.exe...原创 2020-04-15 10:36:24 · 14503 阅读 · 12 评论 -
【SQL异常】启动MySQL报错:ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
目录1、错误信息2、出现原因3、解决方法1、错误信息启动MySQL报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061),报错信息如下:2、出现原因出现这个问题的原因是本地的mysql服务没有启动3、解决方法解决方案非常简单,打开本地的mysql服务,然后再重新登...原创 2020-03-28 11:25:01 · 1108 阅读 · 7 评论 -
【MySQL用法】在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问,并可修改MySQL密码
目录1、错误信息2、解决方法1、错误信息在MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问的问题如何解决呢?在登录Mysql时出现如图所示的提示信息:把提示信息翻译过来:ERROR 1045 (28000): Access denied for user 'roo...原创 2020-03-28 10:50:30 · 910 阅读 · 7 评论 -
【SQL异常】启动MySQL时发生系统错误的解决方法(net start mysql 发生系统错误 5。 拒绝访问)
出现net start mysql 发生系统错误 5。 拒绝访问,这样的错误是因为cmd 权限太低了,需要提高cmd权限才行(即使管理员权限)如下图cmd所示(普通身份进入的cmd窗口):解决方法:更改cmd权限。以管理员身份进入即可。Tips:如果感觉每次都想以管理员身份进入cmd操作窗口的话,按如下设置即可。步骤1:打开命令提示符的文件位置步骤2:命令提示符...原创 2020-03-28 10:05:44 · 2537 阅读 · 5 评论 -
【Navicat提示】:Access violation at address0000000a1063 in module‘navicat.exe‘. Read of address000000058
今天打开Navicat时出现了这样一个错误:Access violation at address0000000000a1063 in module'navicat.exe'. Read of address0000000000000058如图所示:在navicat中如果报了这个错误,根据提示可知,属于内存越界,需要重新注册windows的动态链接库;解决方案:(1)...原创 2020-03-25 18:06:58 · 11574 阅读 · 18 评论 -
【MySQL用法】mysql日期时间函数总结(附带mysql官网介绍)
MySQL提供了大量丰富的函数,在MySQL的使用中经常会用到各种函数,本文记录的是常见的MySQL的日期与时间函数,主要用于处理日期和时间值。MySQL 获得当前日期+时间 函数获得当前日期+时间(date + time)函数:now(),SYSDATE();SELECT now(), SYSDATE();sysdate() 日期时间函数跟 now() 类似,区别在于:n...原创 2020-03-04 13:14:08 · 660 阅读 · 5 评论 -
【MySQL用法】Mysql数据库连接池 [ druid ] 的所有配置介绍
以下内容为Druid连接池的配置含义及介绍(properties、yml、xml文件格式不同,遵循各自文件格式即可,但是内容都一样),下面是propterties文件的格式:#druid# 初始连接的个数spring.datasource.druid.initial-size = 1# 最大连接池数量spring.datasource.druid.max-active = 20#...原创 2020-02-17 11:22:00 · 1039 阅读 · 3 评论 -
【MySQL用法】mysql如何进行以,分割的字符串的拆分
目录1、需求2、实现(sql语句)3、原理分析3.1、SUBSTRING_INDEX(str,delim,count)函数3.2、LENGTH(str)函数3.3、REPLACE(str,from_str,to_str)函数1、需求现有如下需求:需要将字符串(电脑IP)192.168.211.35拆分成192168211352、实现(sq...原创 2019-10-18 10:38:44 · 13039 阅读 · 7 评论