数据库重启后连接不上问题复盘

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 服务器管理人员增加完内存后,笔者进行验证服务时,首先看了下mysql的进程是否起来了,发现mysql进程正常,然后就去管理后台查看数据是否查询正常。进去后发现数据查询并不能正常响应。心里一慌,完蛋!!!!

项目场景:



生产一台数据库服务器因为内存吃紧,需要增加内存。然后决定将数据库服务器的内存由16G增加到32G。 该服务器系统是ubuntu16.04


问题描述:



服务器管理人员增加完内存后,笔者进行验证服务时,首先看了下mysql的进程是否起来了,发现mysql进程正常,然后就去管理后台查看数据是否查询正常。进去后发现数据查询并不能正常响应。心里一慌,完蛋!!!!


原因分析:



笔者经历了几个阶段最后定位了错误。


1.首先看了下ubuntu系统的防火墙是否开启了,发现是关闭的。说明不是端口放行的问题。

#这里列举下ubuntu系统里关于防火墙的操作
sudo apt-get install ufw # 安装防火墙
sudo ufw status # 查看防火墙装态,inactive关闭,active开启
sudo ufw enable # 开启防火墙
sudo ufw disable # 关闭防火墙
sudo ufw version # 查看防火墙版本
sudo ufw default allow # 默认允许外部访问
sudo ufw default deny # 默认拒绝外部访问
sudo ufw allow 3306 # 放行3306端口
sudo ufw delete allow 3306 # 关闭放行端口
sudo ufw allow from 192.168.0.1 # 允许该ip访问所有端口


2.既然防火墙没事,然后测试下其他机器telnet一下该机的3306,发现是正常的说明端口正常。排除了端口问题。

telnet 10.10.1.1 3306 # telnet测试端口是否可以正常联通


3.端口既然也联通了,为什么程序访问数据库时老超时呢,使用Navicat连接报了一个“too many connetions ”,好了然后知道问题了。此时就知道应该是因为服务有人在用,数据库服务刚起来,数据库的连接池就被占满了。然后连接又没释放,就一直连不上超时了。


解决方案:



既然知道了是因为连接迅速被占满导致的问题,那么就更改连接池大小就行了。


1.更改数据库配置文件中连接池的大小设置。


whereis my.cnf # 寻找数据库配置文件的位置,使用find命令也一样
vim /etc/my.cnf # 更改数据库的配置文件。


更改配置文件时注意,我们应该在mysqld模块增加连接池的配置,如下图max_connections=1000所示:

1f7fb2925c634067a80f7add614342d1.png


笔者这里更改了1000。


2.更改完了配置文件我们就可以重启mysql了。


service mysql stop # ubuntu中可以使用该命令停止mysql
service mysql start # ubuntu中可以使用该命令启动mysql

2a2f6901da18432d85f1997dfb695ec6.png


竟然找不到mysql.service,那就只能找下mysql.server所在位置了。

find / -name mysql.server # 全局查找mysql.server文件
# 发现在这里 : /app/mysql/support-files/mysql.server
/app/mysql/support-files/mysql.server stop # 停止mysql服务
/app/mysql/support-files/mysql.server start # 启动mysql服务
ps -ef|grep mysql # 验证mysql是否正常启动


3.搞定了。

目录
打赏
0
0
0
0
11
分享
相关文章
【瑶池数据库训练营及解决方案本周精选(探索PolarDB,参与RDS迁移、连接训练营)】(5.30-6.8)
本周精选聚焦数据库迁移训练营、快速连接云数据库RDS训练营及智能多模态搜索解决方案。为用户提供模拟教程与实战演练,学习RDS MySQL实例连接与数据管理技能,助力企业智能化发展。每周解锁数据库实战新场景,抓紧时间,精彩不容错过!
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
11天前
|
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
38 0
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
724 28
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
219 14
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
257 25

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问