数据库问题排查与常用设置

1.数据库问题

1.1数据库磁盘满了

mysql57表现1:

插入数据或者更新数据可能报错

The table 'xxx' is full"

报错示例:

{

"timestamp": 1706766474768,

"status": 500,

"error": "Internal Server Error",

"exception": "org.springframework.jdbc.UncategorizedSQLException",

"message": "\r\n### Error updating database. Cause: java.sql.SQLException: The table 'sys_dict' is full\r\n### The error may exist in file [D:\\my_projects\\spring-boot-mybatis\\target\\classes\\mapping\\SysDictMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: insert into sys_dict ( id, code, label, category, category_id, parent_id, seq, create_time ) values ( ?, ?, ?, ?, ?, ?, ?, ? )\r\n### Cause: java.sql.SQLException: The table 'sys_dict' is full\n; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1114]; The table 'sys_dict' is full; nested exception is java.sql.SQLException: The table 'sys_dict' is full",

"path": "/country/save"

}

mysql57表现2:

No space left on device

特别说明:此处是数据库服务器没有空间了.不是应用所在服务器没有空间了

示例:

Error writing file '/tmp/MYUJq063' (Errcode: 28 - No space left on device)

mysql57表现3:

猜测是由于硬盘满,数据无法插入

Lock wait timeout exceeded; try restarting transaction

1.2.连接数不够

Too many connections

报错示例:

{

"timestamp": 1706769059175,

"status": 500,

"error": "Internal Server Error",

"exception": "org.mybatis.spring.MyBatisSystemException",

"message": "nested exception is org.apache.ibatis.exceptions.PersistenceException: \r\n### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: \"Too many connections\"\r\n### The error may exist in file [D:\\my_projects\\spring-boot-mybatis\\target\\classes\\mapping\\SysDictMapper.xml]\r\n### The error may involve pers.wwz.study.country.mapper.SysDictMapper.update\r\n### The error occurred while executing an update\r\n### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: \"Too many connections\"",

"path": "/country/update"

}

1.3使用SSL报错

No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

解决方式1:增加连接参数

示例:jdbc:mysql://192.168.168.113:3306/mybatisplus?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false

解决方式2:降低jdk版本

jdk1.8_181可以

解决方式3:修改jdk配置

修改jdk目录\jre\lib\security\java.security

删除掉SSLv3, TLSv1, TLSv1.1

默认配置示例

 
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, DTLSv1.0, RC4, DES, \ MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ ECDH

修改后配置示例:

 
jdk.tls.disabledAlgorithms=DTLSv1.0, RC4, DES, \ MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ ECDH

1.4账户或者密码错误

Access denied for user 'xxxxx'@'xxx' (using password: YES)

解决方案:

修改为正确的账户和密码

1.5连接不上

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

原因:

连接不上数据库,可能数据库挂了或者网络不通或者

解决方案:

启动或者重启数据库

保证调用端和数据库网络畅通

1.6查询报错Duplicate entry

示例:

sql:

select

XXX ,

count(*) as count

from

table_xxx

group by XXX

报错:

Duplicate entry 'XXXXXXX' for key '<group_key>'

原因:

临时表空间不够

解决方案:

增大临时表空间

/etc/my.cnf增加如下内容

 

#大小(字节) set tmp_table_size=100*1024*1024; set max_heap_table_size=100*1024*1024;

或者

 
tmp_table_size = 1024M 
max_heap_table_size = 1024M

3.数据库设置

如不特别说明,配置都是在[mysqld]下添加

3.1查询/设置最大连接数

3.1.1查询最大连接数

show variables like '%max_connections%';

3.1.2设置最大连接数

 

vim /etc/my.cnf

添加

 
max_connections=1024

3.2查询连接数

#连接数

方式1:

 
show status like 'Threads_connected';

方式2:

 
SELECT count(*) AS connection_count FROM information_schema.processlist;

存疑??

此处如果navicat已经连接了,查询连接数navicat也能查到占用一个连接,

但是使用程序去创建连接,还是能创建连接数=设置的最大连接数,navicat占用的连接在程序中好像没有被占用一样

程序创建连接代码

 
String url = "jdbc:mysql://192.168.168.113:3306/mybatisplus?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&useSSL=false"; String username = "root"; String password = "King@wwz1"; try { DriverManager.getConnection(url, username, password); log.info("创建连接成功:{}",i); //可以根据需要创建更多的连接 } catch (SQLException e) { e.printStackTrace(); }

3.3查询/设置超时

3.3.1查询超时配置

 
show global variables like '%wait_timeout';

结果示例:

3.3.2设置超时

 

vim /etc/my.cnf

添加如下内容:

 
innodb_lock_wait_timeout=360000
lock_wait_timeout=360000
wait_timeout=360000

3.4 the table xxx is full

内存表的大小超过了规定的范围

MySQL出现"the table is full"的问题,一般有两个原因:数据表设置太小或者服务器空间满了

3.4.1.需要加大数据表大小

解决方案

vi /etc/my.cnf

需要修改MySQL的配置文件my.cnf,在[mysqld]下添加/修改两行:

tmp_table_size = 1024Mmax_heap_table_size = 1024M

系统默认是16M,修改完后重启mySQL

3.4.2.服务器硬盘空间满了

清理垃圾/无用数据即可

磁盘扩容

3.5忽略大小写

vi /etc/my.cnf

增加如下内容

 
lower_case_table_names=1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TryHackMe-File Inclusion练习

本文相关的TryHackMe实验房间链接&#xff1a;TryHackMe | Why Subscribe 路径遍历(目录遍历) LocationDescription/etc/issue包含要在登录提示之前打印的消息或系统标识。/etc/profile控制系统范围的默认变量&#xff0c;例如导出&#xff08;Export&#xff09;变量、文件创…

fastadmin添加活动二维码图片,扫码可以直接跳转到该活动

一&#xff0c;在controll重写add方法 /*** 添加*/ public function add() {if ($this->request->isPost()) {$params $this->request->post("row/a");if ($params) {$params $this->preExcludeFields($params);if ($this->dataLimit &&…

Kotlin 协程1:深入理解withContext

Kotlin 协程1&#xff1a;深入理解withContext 引言 在现代编程中&#xff0c;异步编程已经变得非常重要。在 Kotlin 中&#xff0c;协程提供了一种优雅和高效的方式来处理异步编程和并发。在这篇文章中&#xff0c;我们将深入探讨 Kotlin 协程中的一个重要函数&#xff1a;wi…

实习记录——第十天

今天啥也不想说了&#xff0c;ctf里面还有道题目还没做&#xff0c;这里就不写了&#xff0c;把日报奉上&#xff0c;懂得都懂&#xff1a; 2.2日总结&#xff1a; 早上对xx银行的招聘网站做了渗透测试&#xff0c;对招聘网点赞处做重放看是否会多次点赞&#xff0c;对收藏处考…

关于sql关键字及敏感数据脱敏

数据脱敏相关 数据脱敏数字类型数据脱敏sql关键字脱敏 数据脱敏 数据脱敏是经常会遇到的需求&#xff0c;很常见。 尤其是一些客户数据&#xff0c;如身份证号、手机号码等。 脱敏规则也不尽相同&#xff0c;这里列举两种&#xff0c;作为参考吧。 数字类型数据脱敏 近期刚好…

【JAVA】守护线程是什么?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 正文 我的其他博客 正文 在计算机编程中&#xff0c;守护线程&#xff08;daemon thread&#xff09;是一种在程序运行时在后台提供服务的线程…

2024021期传足14场胜负前瞻

2024021期赛事由亚洲杯2场、英超5场&#xff0c;德甲6场、非洲杯1场组成。售止时间为2月3日&#xff08;周六&#xff09;19点00分&#xff0c;敬请留意&#xff1a; 本期1.5以下赔率3场&#xff0c;1.5-2.0赔率3场&#xff0c;其他场次基本皆是平半盘、平盘。本期14场整体难度…

【详细教程】Kubernetes集群部署:使用kubeadm创建集群

文章目录 一、虚拟机准备&#xff08;一&#xff09;主机基本配置&#xff08;二&#xff09;安装docker&#xff08;三&#xff09;配置cri-docker环境&#xff08;四&#xff09;安装kubeadm、kubelet、kubectl&#xff08;五&#xff09;克隆主机 二、环境配置工作&#xff…

Python 3 中,使用 Memcached

在 Python 3 中&#xff0c;使用 Memcached&#xff0c;一个高性能的分布式内存对象缓存系统&#xff0c;可以通过多个第三方库来实现。这些库允许 Python 应用程序与 Memcached 服务器进行通信&#xff0c;从而缓存数据以加快应用程序的响应速度和提高效率。最常用的库之一是 …

CDN高防IP:技术解析与相关问题解答

在使用CDN高防IP技术的过程中&#xff0c;可能会遇到一些问题。下面是一些常见问题和相应的解答&#xff0c;希望能帮助读者更好地了解和使用CDN高防IP技术。 问题一&#xff1a;什么是CDN高防IP技术&#xff1f; 解答&#xff1a;CDN高防IP技术是一种通过将网站流量分散到多…

LeetCode:138. 随机链表的复制之如何有效copy

自己复制的话&#xff0c;很容易写出来一个时间复杂度O&#xff08;n ^ 2&#xff09; 空O&#xff08;n&#xff09;的做法 我们可以参考基因的复制&#xff0c; 目录 题目&#xff1a; 实现思路&#xff08;基因复制式的copy&#xff09;&#xff1a; 官方快慢指针解法&…

R语言学习case6:ggplot基础画图(Scatter散点图)

step1: 导入ggplot2库文件 library(ggplot2)step2&#xff1a;带入自带的iris数据集 iris <- datasets::irisstep3&#xff1a;查看数据信息 dim(iris)维度为 [150,5] head(iris)查看数据前6行的信息 step4&#xff1a;利用ggplot工具包绘图 plot1 <- ggplot(iris…

解决WARNING: IPv4 forwarding is disabled. Networking will not work的具体操作步骤

IPv4转发禁用警告&#xff1a;网络无法正常工作 在使用网络连接的过程中&#xff0c;我们可能遇到警告消息“WARNING: IPv4 forwarding is disabled. Networking will not work”&#xff08;警告&#xff1a;IPv4转发已禁用&#xff0c;网络将无法正常工作&#xff09;。这个…

【sentinel流量卫兵搭建与微服务整合】

sentinel流量卫兵搭建与微服务整合 搭建sentinel dashboard控制台微服务整合 搭建sentinel dashboard控制台 1、下载 官网链接 由于官网github网络原因&#xff0c;导致长时间下载失败。 网盘链接 网盘提取码&#xff1a;dwgj 2、运行 将下载jar包放在任意非中文、不包含特殊…

Mac如何设置一位数密码?

一、问题 Mac如何设置一位数密码&#xff1f; 二、解答 1、打开终端 2、清除全局账户策略 sudo pwpolicy -clearaccountpolicies 输入开机密码&#xff0c;这里是看不见的&#xff0c;输入完回车即可 3、重新设置密码 &#xff08;1&#xff09;打开设置-->用户和群组…

Next.js初识

Next.js初识 Next.js&#xff1a;这是一个用于生产环境的React 框架&#xff08;国外用的比较多&#xff09;。 Next.js 为您提供生产环境所需的所有功能以及最佳的开发体验&#xff1a;包括静态及服务器端融合渲染、 支持 TypeScript、智能化打包、 路由预取等功能 无需任何配…

Android平台如何实现RTSP转GB28181

为什么要做GB28181设备接入侧&#xff1f; 实际上&#xff0c;在做Android平台GB28181设备接入模块的时候&#xff0c;我们已经有了非常好的技术积累&#xff0c;比如RTMP推送、轻量级RTSP服务、一对一互动模块、业内几乎最好的RTMP|RTSP低延迟播放器。 Android平台GB28181接…

爱、自由与创造——教育改革的三大基石

爱、自由与创造——教育改革的三大基石 Love, Freedom, and Creativity: The Three Pillars of Educational Reform 在当今社会快速发展的背景下&#xff0c;创造性思维的重要性日益凸显。然而&#xff0c;我们必须认识到&#xff0c;创造性并非凭空产生&#xff0c;而是深深植…

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

目录 前言 1、常见消息队列 1.ActiveMQ 2.RabbitMQ 3.RocketMQ 4.Kafka 2、区别 1.消息传递模型 2.消息持久化 3.消息顺序性 4.可靠性 5.生态系统和社区支持 6.表格对比 前言 消息队列可以实现应用程序之间的异步通信&#xff0c;能够实现异步消息的发送和接收&am…

MySQL | 一定会走索引却没有走的原因,日志报conversion相关错误

TL;DR&#xff1a;函数作用于表字段时&#xff0c;索引会失效。 具体情况 Indexes如下&#xff1a; SQL如下&#xff1a; explain select *from accounting_status_flow_tab_00000000WHERE ( client_no 6848134000 and loan_no 0119324345936016261000 )order by modif…