当前位置: 首页 > news >正文

针对服务器磁盘爆满,MySql数据库始终无法启动,怎么解决

5dfc140498d3d6f2bab2a5e604775fbd.jpeg

(点击即可进入聊天助手)

很多站长在运营网站的过程当中都会遇到一个问题,就是网站突然无法打开,数据一直无法启动

无论是强制重启还是,删除网站内的所有应用,数据库一直无法启动

这个时候,就需要常见的运维手段了,需要对服务器后台各个资源,进行逐一排查

如果一看到磁盘容量拉满,也并不是网络带宽问题,盲目的去花钱升级硬盘容量,这是不可取的,也是个无底洞,找到具体的问题,给解决才是上上之策

042da4609bb72d6681f990ff9c5308f4.png

解决Linux服务器上MySQL数据库无法启动的问题

  1. 查看数据库错误日志

sudo less /var/log/mysql/error.log
  1. 检查MySQL服务状态:

使用systemctl检查MySQL服务的状态,以确定是否有错误信息

sudo systemctl status mysql.service
  1. 检查配置文件

确保/etc/my.cnf或/etc/mysql/my.cnf(路径可能因发行版而异)配置文件中没有错误

  1. 检查磁盘空间(很多时候就是这个原因)

确保服务器上有足够的磁盘空间,先使用df -h 查看磁盘容量,然后再使用du -sh *,查看文件大小,找到文件异常大的,然后使用rm -rf 文件名,删除掉腾出资源空间

df -h
  1. 检查权限问题:

确保MySQL相关目录和文件的权限设置正确。

  1. 检查端口占用:

确保MySQL默认端口3306没有被其他进程占用

sudo netstat -tulnp | grep 3306
  1. 尝试安全模式启动:

如果常规启动失败,可以尝试以安全模式启动MySQL

sudo mysqld_safe &
  1. 修复安装:

如果怀疑数据库损坏,可以尝试使用MySQL的修复工具

sudo mysql_upgrade -u root -p
  1. 重新配置/初始化:

如果以上方法都不能解决问题,可能需要重新配置或初始化数据库

sudo mysqld --initialize
sudo systemctl start mysql.service

linux服务器MySql数据库始终无法启动    解决Linux服务器上MySQL数据库无法启动的问题,通常需要检查以下几个方面:

查看错误日志:

使用grep命令查看MySQL的错误日志,通常位于/var/log/mysql/error.log。

sudo grep 'temporary' /var/log/mysql/error.log

检查MySQL服务状态:

使用systemctl检查MySQL服务的状态,以确定是否有错误信息。

sudo systemctl status mysql.service

检查配置文件:

确保/etc/my.cnf或/etc/mysql/my.cnf(路径可能因发行版而异)配置文件中没有错误。

检查磁盘空间:

确保服务器上有足够的磁盘空间。

df -h

检查权限问题:

确保MySQL相关目录和文件的权限设置正确。

检查端口占用:

确保MySQL默认端口3306没有被其他进程占用。

sudo netstat -tulnp | grep 3306

尝试安全模式启动:

如果常规启动失败,可以尝试以安全模式启动MySQL。

sudo mysqld_safe &

修复安装:

如果怀疑数据库损坏,可以尝试使用MySQL的修复工具。

sudo mysql_upgrade -u root -p

重新配置/初始化:

如果以上方法都不能解决问题,可能需要重新配置或初始化数据库。

sudo mysqld --initialize sudo systemctl start mysql.service
  1. 查看系统日志:

查看系统日志,如/var/log/syslog或使用journalctl,以获取可能导致MySQL启动失败的更多信息。

sudo journalctl -u mysql.service

下面介绍一个,磁盘空间爆满,即使删除服务器内的所有应用,数据库依旧无法启动

进入服务器根目录查看磁盘容量

远程登陆服务器,进入服务器根目录

cd /

使用df -h, 命令查看服务器下资源各个磁盘的容量情况

如果你发现某个文件目录下,占用磁盘空间特别大,那就是这个磁盘该清理了的

Filesystem      Size  Used Avail Use% Mounted on
tmpfs           593M  972K  592M   1% /run
/dev/vda2       118G   117G   99G  98% /
tmpfs           2.9G  8.0K  2.9G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           593M  4.0K  593M   1% /run/user/0

此刻,说明/dev/vda2的资源已经满了,导致数据库无法启动的根本原因就在这里

所以需要删除一些占用硬盘资源大的东西

使用"du -sh *"查看当前目录下每一个的目录和文件的大小汇总

0       bin
242M    boot
8.0K    dev
21M     etc
184M    home
0       lib
0       lib32
0       lib64
0       libx32
16K     lost+found
4.0K    media
4.0K    mnt
4.0K    opt
8.0K    patch
du: cannot access 'proc/25809/task/25809/fd/4': No such file or directory
du: cannot access 'proc/25809/task/25809/fdinfo/4': No such file or directory
du: cannot access 'proc/25809/fd/3': No such file or directory
du: cannot access 'proc/25809/fdinfo/3': No such file or directory
0       proc
30M     root
976K    run
0       sbin
1.3G    snap
4.0K    srv
0       sys
1.3M    tmp
3.9G    usr
5.1G    var
4.1G    www

然后你看哪个文件占用内存特别大,然后就进入哪个目录去删掉的

一般来说,几个G的,不算太大,但是某个目录文件超过硬盘的90%,那这个目录肯定需要腾出资源来

比如:我的是,www这个目录,之前是占用了110多个G,这个目录主要是存放服务器一些资源的

进入哪个目录,就用du -sh *,这个命令查看各个文件的大小

进入/www/server/,发现是php某个版本占用硬盘资源非常大,发现php版本,70占用硬盘空间达到100多个G,把它删掉就可以了的

使用命令rm -rf 70,删除,然后重启服务器就可以了的

你只要看哪个目录占用空间非常大,继续使用cd命令进入相应的目录,继续使用du命令进行查看,然后删除一下没用的文件,或者把它挂载到其他分区

总结

服务器内,不要随意的去安装各种php版本,它是非常占用磁盘空间的,有些应用程序非常吃硬盘,网站每运行一分钟,不仅会产生日志,缓存,还有可能会产生一些其他的文件,时间一久就会影响磁盘,如果积累到一定程度,就会影响服务器的运行速度

选择合适的php版本,因网站程序而异,不可千篇一律,得适配程序的,不可胡乱安装的,否则会导致一些奇怪的问题,严重会影响业务

富爸爸情商课

2025-01-10

f4fe517968ebfe3b55f61a8ca0d9c674.jpeg

理解人性

2025-01-09

30e35ab3aec88a6dfb91ddae5eff14ee.jpeg

金钱的艺术

2025-01-08

3bf1948e89dd5050eb5c55e9b3ff8497.jpeg

a4d3221e870b6765c090373528afeb95.png

点击左下角查看更多

bcf12740fed791f3486b091a9bf0a047.gif

http://www.lryc.cn/news/520099.html

相关文章:

  • [Android]service命令的使用
  • 【芯片封测学习专栏 -- Substrate | RDL Interposer | Si Interposer | 嵌入式硅桥(EMIB)详细介绍】
  • spring cloud注册nacos并从nacos上拉取配置文件,spring cloud不会自动读取bootstrap.yml文件
  • 【深度学习地学应用|滑坡制图、变化检测、多目标域适应、感知学习、深度学习】跨域大尺度遥感影像滑坡制图方法:基于原型引导的领域感知渐进表示学习(一)
  • Spring Boot 支持哪些日志框架
  • 【翻译】2025年华数杯国际赛数学建模题目+翻译pdf自取
  • qt 窗口(window/widget)绘制/渲染顺序 QPainter QPaintDevice Qpainter渲染 失效 无效 原因
  • TIOBE编程语言排行靠前的编程语言的吉祥物
  • 【前端动效】HTML + CSS 实现打字机效果
  • 大疆上云API连接遥控器和无人机
  • JS逆向-atob和btoa分析
  • primitive 编写着色器材质
  • 计算机视觉算法实战——车道线检测
  • 网络安全-安全散列函数,信息摘要SHA-1,MD5原理
  • 树莓派-5-GPIO的应用实验之GPIO的编码方式和SDK介绍
  • 《零基础Go语言算法实战》【题目 2-10】接口的实现
  • Win32汇编学习笔记10.OD插件
  • 在vscode中已经安装了插件Live Server,但是在命令面板确找不到
  • C# SQL ASP.NET Web
  • 联想java开发面试题及参考答案
  • Node.js中的fs模块:文件与目录操作(写入、读取、复制、移动、删除、重命名等)
  • 代码的形状:重构的方向
  • 2021 年 3 月青少年软编等考 C 语言五级真题解析
  • 华为C语言编程规范总结
  • XML 解析器:深入解析与高效应用
  • 《系统爆破:MD5易破,后台登录可爆破?》
  • 基于微信小程序的书籍销售系统设计与实现(LW+源码+讲解)
  • SpringData-Redis缓存
  • Hadoop3.3.4伪分布式环境搭建
  • 【VUE 指令学习笔记】