云服务器 mysql经常自动停止挂掉重启

springboot使用Hikari连接池问题:HikariPool-1 - Connection is not available, request timed out after 30000ms 最近项目由Oracle切mysql,在压测时发现一直会有该错误抛出: HikariPool-1 - Connection is not available, request timed out after 30000ms 我们知道Springboot 2.X默认的是使用的Hikari连接池,抛出上述错误因为拿不到连接了,最大可能是因为连接池的最大连接数设置的小了; 创建连接池和session代码如下: package com.bootMybatis.config; import com.zax 阅读详情

mysql经常自动停止挂掉重启

原文引用:https://blog.youkuaiyun.com/xuz0917/article/details/79100834

2019-09-05 22:20:19 [HikariPool-1 connection adder] [DEBUG] com.zaxxer.hikari.pool.HikariPool.createPoolEntry:487 -HikariPool-1 - Cannot acquire connection from data source
com.mysql.cj.jdbc.exceptions.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.
    at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198)
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467)
    at com.zaxxer.hikari.pool.HikariPool.access$100(HikariPool.java:71)
    at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:706)
    at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:692)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

 优化方案如下:

1.创建 SWAP 分区【该方法亲测好使】

检查系统Swap文件信息

sudo swapon -s
free -m

检查硬盘可用空间

df -h

创建Swap文件

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024

激活Swap

sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1

使Swap在主机重启后依然生效

sudo nano /etc/fstab
加入以下内容:
/var/swap.1 swap swap defaults 0 0

重启

reboot

2.linux下修改/etc/my.cnf文件:vi /etc/my.cnf

降低 InnoDB 缓冲区大小为 64M 或者 32M(到mysql配置文件中修改)

innodb_buffer_pool_size=64M

限制最大连接数为100,在服务器配置很低时可以继续降低

max_connections=100

重启mysql服务

systemctl restart mysqld.service

完整如下

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]

#设置默认时区
default-time-zone = '+8:00'

# 设置3306端口
port=3306

# 允许最大连接数
max_connections=15

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10

# 服务端使用的字符集默认为UTF8
# character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]

# 设置mysql客户端默认字符集
default-character-set=utf8

[client]

# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 64M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password

同时修改程序中application.properties文件

增加以下内容

spring.datasource.max-active=50
#是否在自动回收超时连接的时候打印连接的超时错误
spring.datasource.log-abandoned=true
#是否自动回收超时连接
spring.datasource.remove-abandoned=true
##<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
spring.datasource.max-wait=1000
spring.datasource.test-while-idle=true
#检测数据库的查询语句
spring.datasource.validation-query=select 1 from dual
spring.datasource.test-on-borrow=true
#每隔五分钟检测空闲超过10分钟的连接
spring.datasource.min-evictable-idle-time-millis=600000
spring.datasource.time-between-eviction-runs-millis=300000
#服务器配置较低时,需要调整,连接池配置
#Hikari will use the above plus the following to setup connection pooling
spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=12
spring.datasource.hikari.idle-timeout=300000
spring.datasource.hikari.max-lifetime=1200000
spring.datasource.hikari.auto-commit=true

applicati.properties

#Thymeleaf路径
spring.thymeleaf.prefix=classpath:/templates/
#Thymeleaf后缀
spring.thymeleaf.suffix=.html
#Thymeleaf编码
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML5

#JDBC数据库配置
spring.datasource.initialization-mode=never
spring.datasource.url=jdbc:mysql://49.235.145.140:3306/kpy
spring.datasource.username=root
spring.datasource.password=199489
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.max-active=50
#是否在自动回收超时连接的时候打印连接的超时错误
spring.datasource.log-abandoned=true
#是否自动回收超时连接
spring.datasource.remove-abandoned=true
##<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
spring.datasource.max-wait=1000
spring.datasource.test-while-idle=true
#检测数据库的查询语句
spring.datasource.validation-query=select 1 from dual
spring.datasource.test-on-borrow=true
#每隔五分钟检测空闲超过10分钟的连接
spring.datasource.min-evictable-idle-time-millis=600000
spring.datasource.time-between-eviction-runs-millis=300000
#服务器配置较低时,需要调整,连接池配置
#Hikari will use the above plus the following to setup connection pooling
spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=12
spring.datasource.hikari.idle-timeout=300000
spring.datasource.hikari.max-lifetime=1200000
spring.datasource.hikari.auto-commit=true

# 服务器HTTP端口
server.port= 8080

 

AMG8833红外测温实战:在STM32F103上做个简易人体感应与温度报警器 本文详细介绍了如何在STM32F103上使用AMG8833红外测温传感器构建人体感应与温度报警系统。通过硬件连接方案、驱动代码开发、人体检测算法实现及报警系统设计,展示了如何利用8x8红外温度矩阵实现智能监测功能。文章包含实用的初始化流程、温度数据读取优化和低功耗策略,为创客项目提供完整解决方案。 阅读详情

相关推荐

扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路

本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。

weixin_29053695的博客 352

mysql超出最大连接数解决方法

遇到mysql超出最大连接数,相信不少人第一反应就是查看mysql进程,看有没有慢查询,当然这个做法是完全正确的!但是很多时候真正的问题不在这里。今天有遇到同样的问题,一味查看mysql进程和慢查询日志,无果。后来老大提点了一下,查看一下nginx日志,发现有一两个访问执行时候比较长,然后使用top命令查看了一下服务器负载,惊了,居然超高!最后发现原来有一台web分流主机挂了,导致另外几台web主...

weixin_34146805的博客 621

django安装mysqlclient (Windows下正确安装mysqlclient)

由于本人也是初学Python和django。本人使用的Python版本是3.7所以连接MySQL数据库需要安装数据驱动,对应Python3的数据驱动是mysqlclient。因此本人习惯性的使用命令pip install mysqlclient,结果安装失败 (venv) C:\Users\songlihui\PycharmProjects\autotest&gt;pip install my...

songlh1234的博客 2万+

springboot链接mysql出错_springboot2.3.7连接mysql错误?

问题描述springboot 2.3.7mysql-connector-java 8.0.22mysql 8.0.3openjdk 14.0.1 (尝试过 jdk 1.8)在使用 springboot 2.2.2 版本时,没有任何问题,切换到 2.3.7版本报如下错误:02:54:54.036 logback [http-nio-8090-exec-1] DEBUG com.zaxxer.hika...

weixin_39543478的博客 1035

事件相机数据处理实战:从原始事件流到视觉表征的三种核心方法

本文深入探讨了事件相机数据处理的核心环节,即如何将异步、稀疏的原始事件流转换为深度学习模型可处理的视觉表征。文章重点解析了三种核心方法:逐通道累积、体素网格双线性插值和对称累积事件表示,详细阐述了其原理、代码实现、可视化效果及各自的适用场景,为事件相机在目标识别、光流估计等视觉任务中的高效应用提供了实战指南。

read5的博客 439

风光储互补微电网在偏远地区的应用实践:从建模到仿真全解析

本文深入解析了风光储互补微电网在偏远地区的应用实践,从系统设计到仿真建模全流程。通过Simulink等工具进行动态仿真,验证了系统在多种工况下的可靠性,并结合实际案例展示了其显著的经济和环保效益。文章为从业者提供了从技术路径到实施优化的全面指导。

weixin_29047545的博客 271

连接池 HikariPool (一) - 基础框架及初始化过程

高性能数据库连接池HikariPool源码分析 连接池 多线程 线程池

weixin_44612246的博客 6824

DeepSeek在实时计算与流处理系统中的突破性实践

对于技术决策者而言,现在正是将DeepSeek实时计算技术纳入企业架构蓝图的关键时机,那些能够率先构建实时智能能力的企业,将在数据驱动的商业竞争中赢得决定性优势。DeepSeek通过创新的流处理架构,成功将复杂事件处理(CEP)的延迟降低到亚秒级,同时保证了计算结果的精确性。DeepSeek研发的神经架构搜索(NAS)与知识蒸馏联合优化框架,可在保持模型精度的前提下,将参数量压缩至原始模型的1/100,实现边缘设备的实时AI推理。随着5G和物联网技术的普及,对实时处理能力的需求将呈指数级增长。

Programming Talk 291

springboot连接oracle报错:listener does not currently know of SID given in connect descriptor

IP换成oracle的服务IP,后面的orcl要配置成服务名称。分析发现applcation.yml的oracle配置项有误。问题解决 可以正常操作orale数据库。像楼主这种情况,url正确配置。

jack__love的博客 993

【ESP32接入国产大模型之豆包】

🥳🥳🥳现在,我们在本教程中,您学习了如何使用ESP32接入语言大模型之豆包。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,后期会持续分享esp32跑freertos实用案列🥳🥳🥳科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣如果你有任何问题,可以通过q group(945348278)加入鹏鹏小分队,期待与你思维的碰撞😘😘😘。

vor234的博客 1万+

史上最全!研究生科研必备科研工具(含AI科研工具),附使用说明和示例

这些工具在科研中的应用非常广泛,可以帮助研究生更高效地完成研究任务。为了更好地利用这些工具,建议深入学习它们的官方文档和教程,或者参加相关的工作坊和培训。

智能AI让学术科研更容易 3945

ecs云服务器 mysql经常自动停止挂掉重启问题分析

我的ecs服务器为1g内存的配置,在部署了nginx,mysql,redis,node服务后跑起项目来,(mysql使用默认配置),每过几天便发现了经常会出现数据库自动停止挂掉,然后几分钟后重启的现象,与此同时ecs无法登陆,当然,网站也是无法访问了。 后来联系了ecs的工单支持,他们查看了系统日志后说是内存不足,给出了增加虚拟内存的方案。 这里是 free -m 的查看信息 free -m ...

weixin_34242509的博客 418

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

阿里云服务器 mysql经常自动停止挂掉重启的完美解决方式

阿里云服务器 MySQL 经常自动停止、挂掉、重启。 打开 MySQL 的 error.log 错误信息,在阿里云 CentOS 的路径为 /alidata/log/mysql/error.log,如下: 2016-03-13 00:16:37 0[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please us

猿子 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mysql老是自动停止_ecs云服务器 mysql经常自动停止挂掉重启问题分析

我的ecs服务器为1g内存的配置,在部署了nginx,mysql,redis,node服务后跑起项目来,(mysql使用默认配置),每过几天便发现了经常会出现数据库自动停止挂掉,然后几分钟后重启的现象,与此同时ecs无法登陆,当然,网站也是无法访问了。后来联系了ecs的工单支持,他们查看了系统日志后说是内存不足,给出了增加虚拟内存的方案。这里是 free -m 的查看信息free -mtotal ...

weixin_34966468的博客 342

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

云服务器mysql老是掉_ecs云服务器 mysql经常自动停止挂掉重启问题分析

我的ecs服务器为1g内存的配置,在部署了nginx,mysql,redis,node服务后跑起项目来,(mysql使用默认配置),每过几天便发现了经常会出现数据库自动停止挂掉,然后几分钟后重启的现象,与此同时ecs无法登陆,当然,网站也是无法访问了。后来联系了ecs的工单支持,他们查看了系统日志后说是内存不足,给出了增加虚拟内存的方案。这里是 free -m 的查看信息free -mtotal ...

weixin_34652580的博客 453

centos下mysql"无缘无故"挂掉且无法重启

问题描述 在出问题的前一瞬间,本地正连着服务器mysql查寻数据,提交补丁代码后,重启tomcat,检查网站运行正常,可就在本地进行数据库查询时,突然提示连接错误。 解决过程 连接总是失败,我不得不去服务器上看看(低配版阿里云服务器),putty连接远程服务器。 [第一次尝试] 通过netstat -tulpn,并没发现mysqld字样,证明mysql服务停止了 尝试重启mys...

kiramario的博客 3579

linux查看MySQL服务状态

最近自己的博客服务器总是挂掉,虽然用的是阿里云配置比较低的,但是之前也是好好的还相对比较稳定的,感觉这套路云又在搞事情。 首先要看一下MySQL服务状态 一般来说我们都会用命令交互命令mysql来 service mysql status 但实际会not found之类没有结果,可以试一下mysqld service mysqld status 果真是挂了,看别的帖子说可能是阿里云小内存会这样,但是自己忘了这个服务器数据库密码,先重启再说吧,本身就是一个博客网站也没啥东西。 启动MySQL服务 首先最

FeiChangWuRao的博客 1万+

sqlyog怎么连接mysql错误2003_网站突然连不上,MySQL连接错误经常内存不够宕机

阿里云服务器 MySQL 经常自动停止、挂掉、重启。打开 MySQL 的 error.log 错误信息,在阿里云 CentOS 的路径为 /alidata/log/mysql/error.log,如下:2016-03-13 00:16:37 0[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use--exp...

weixin_39734048的博客 207

mysql运行报告_简单shell脚本监测mysql运行情况_MySQL

阿里云服务器上的mysql服务经常挂掉,每次需要自己去重启nginx,php,mysql服务器。其实只需要写一个简单的shell脚本监测mysql的运行进程,一旦这个进程消失就重启服务器。同时把脚本加入到系统服务中。为了不占用过多的资源,让脚本1分钟检查一次。Monitor Shell #!/bin/bash#Supported by Letianwhile [ "1"="1" ]dostill_...

weixin_31034309的博客 232

故障排查:阿里云轻量应用服务器中的MySQL容器自行停止

本文介绍了在使用阿里云轻量应用服务器的过程中,遇到的一个问题以及其解决办法。

农民工老王的博客 5338

记一次mysql服务的流血事件

  2018年5月10日,使用django在服务器上搭建了一个web站点,遇到了一系列的问题,最终在官网找到了解决方案,然而晚上十点左右无意间发现mysql服务处于挂掉状态,网站和微信小程序全部不能正常使用,第一想到的是cron脚本,因为之前mysql服务就经常会自动停止服务,后来干脆写了个cron脚本实时监听mysql服务并自动重启mysql,查看cron日志发现,mysql于10号上午就已经...

谭小谭的专栏 340

【Docker】3.docker操作容器命令(运行mysql8为例)

如果不开启后面会报错。云服务器不需要设置,部分centos需要设置,可以检测一下是否设置,如果没有则修改配置文件并添加 net.ipv4.ip_forward=1添加标红代码。一旦修改的与网络相关的东西,需要重启相关服务,重启依赖于网络的docker。

qq_50446805的博客 937

阿里云云服务器从零搭建(nginx+mysql+web+node)

快速从0搭建云服务器(nginx+mysql+node以及常见错误解决方法)

ziyer666的博客 874

简单shell脚本监测mysql运行情况

为什么80%的码农都做不了架构师?>>> ...

weixin_33774883的博客 186

使用docker部署项目程序

docker的基础命令 下载镜像(:后面是版本号,如果不写,默认下载最新lastest): ● docker pull redis:5.0查看下载的镜像: ● docker images启动容器: ● docker run -it --name=mysql mysql:5.7 /bin/bash(交互式,创建后直接进入容器,退出后容器关闭) ● docker run -id --name=mysql mysql:5.7(后台运行)-it方式会在创建容器后直接进入容器,一顿操作后exit退出时容器也会关闭。

qq_41876182的博客 7916
上一篇: 第一个SpringBoot开发及腾讯云服务器部署systemctl status firewalld.service
下一篇: 【在 Windows 系统下搭建 Dify】
Royal-Kpy
博客等级 码龄10年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值