linux环境下 xampp mysql 启动失败问题排查 日志文件过大占用存储空间导致网站瘫痪

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 问题现象网站莫名其妙的连接不上mysql了,导致网站瘫痪;没有改任何程序,怎么回事呢?马上用xshell 和xftp工具连接linux服务器来排查问题启动xampp mysql/opt/lampp/lampp startmysql 启动xampp mysql![/opt/lampp/bin/mysql.

问题现象

网站莫名其妙的连接不上mysql了,导致网站瘫痪;没有改任何程序,怎么回事呢?马上用xshell 和xftp工具连接linux服务器来排查问题

启动xampp mysql

/opt/lampp/lampp startmysql     启动xampp mysql

![/opt/lampp/bin/mysql.server: line 260: kill: (11145) - No such process
](https://upload-images.jianshu.io/upload_images/1131704-03dc9e8a94e39b93.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

执行mysql start命令

mysql start     //进入bin目录,执行mysql start命令

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2 "No such file or directory")

问题分析:

  • xampp程序以及配置文件都没有任何改动,前几天,网站还正常运行,今天就莫名其妙的显示mysql无法正常连接。初步判断不是程序的问题。
  • 所以第一步开始去排查服务器的系统盘占用情况
df -l          --执行命令,查看系统盘空间占用情况


结果发现:系统盘被占用了100%

在根目录执行命令:

du -s -h ./*                         --看下具体子目录占用大小情况

经过一层一层排查,知道了是Tomcat日志文件过大导致的。
具体过大文件在:/usr/java/tomcat/apache-tomcat-8.5.30/logs 路径下面。
先关闭Tomcat进程,然后删除日志文件。因为被进程占用的话,即使删除了日志文件,以后会显示系统盘被占用100%

再次执行命令

df -l   或者  df -lh   

image.png

经过上面的步骤,继续启动xmapp mysql发现,依然没用,怎么回事?
这次要拿出杀手锏来了,分析mysql启动日志

启动日志路径在:
/opt/lampp/var/mysql

image.png

利用Notepad ++打开改文件,或者利用linux自带的vim打开。

日志文件:

2018-12-24 10:50:50 10085 mysqld_safe Starting mysqld daemon with databases from /opt/lampp/var/mysql
2018-12-24 10:50:50 140491172915008 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

2018-12-24 10:50:50 140491172915008 [Note] Using unique option prefix 'key_buffer' is error-prone and can break in the future. Please use the full name 'key_buffer_size' instead.
2018-12-24 10:50:50 140491172915008 [Note] /opt/lampp/sbin/mysqld (mysqld 10.1.37-MariaDB) starting as process 10231 ...
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: The InnoDB memory heap is disabled
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Compressed tables use zlib 1.2.11
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Using SSE crc32 instructions
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Completed initialization of buffer pool
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Highest supported file format is Barracuda.
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: 128 rollback segment(s) are active.
2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Waiting for purge to start
2018-12-24 10:50:51 140491172915008 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.41-84.1 started; log sequence number 17666815
2018-12-24 10:50:51 140491172915008 [Note] Plugin 'FEEDBACK' is disabled.
2018-12-24 10:50:51 140491172915008 [Note] Recovering after a crash using tc.log
2018-12-24 10:50:51 140491172915008 [ERROR] Can't init tc log
2018-12-24 10:50:51 140491172915008 [ERROR] Aborting

2018-12-24 10:50:53 10085 mysqld_safe mysqld from pid file /opt/lampp/var/mysql/izuf655vwf6dndsynw1j3mz.pid ended

问题关键出来了: Can't init tc log

在目录下/opt/lampp/var/mysql 找到 这个文件,删除即可!

然后重启xammp mysql 启动正常

/opt/lampp/lampp startmysql

总结

第一步:清楚linux服务器上的无用的日志文件,这里主要是tomcat日志文件产生的,因为我的服务器同时部署了xampp以及tomcat
第二步:分析mysql错误日志文件,然后针对性的对错误进行解决。但是问题的根本原因是因为系统盘被tomcat日志文件占用导致,所以部署tomcat程序的时候,要特别注意限制日志文件的输入,控制其大小,否则会导致系统盘被占满,网站不可用。

参考文献:

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
43 7
|
29天前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
106 13
|
24天前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
2月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
174 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
1月前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
1月前
|
安全 关系型数据库 MySQL
解决MySQL删除/var/lib/mysql下的所有文件后无法启动的问题
删除 `/var/lib/mysql` 下的所有文件后,需要重新初始化数据目录,确保正确的权限设置,并重新启动 MySQL 服务。通过按照上述步骤操作,可以解决 MySQL 无法启动的问题,并恢复数据库的正常运行。初始化数据目录后,别忘了配置安全设置,并根据需要恢复备份数据。这些步骤不仅能够恢复 MySQL 的正常运行,还能确保数据库的安全性和完整性。
70 2
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
2月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】MySQL的参数文件
MySQL启动时会读取配置文件my.cnf来确定数据库文件位置及初始化参数。该文件分为Server和Client两部分,包含动态与静态参数。动态参数可在运行中通过命令修改,而静态参数需修改my.cnf并重启服务生效。文中还提供了相关代码示例和视频教程。
|
2月前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
|
2月前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
44 7