关于mysql的binlog写满磁盘而导致mysql无法连接的问题。

问题描述与追踪

首先是mysql连不上:

[root@VM-90-225-centos ~]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

然后查看mysql的状态:

[root@VM-90-225-centos ~]# service mysqld statusERROR! MySQL is not running, but PID file exists

然后根据这篇文章:
mysql无法启动ERROR! MySQL is running but PID file could not be found
我在根目录下查看了一下磁盘文件:

[root@VM-90-225-centos ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.7G     0  7.7G   0% /dev
tmpfs           7.7G     0  7.7G   0% /dev/shm
tmpfs           7.7G  258M  7.5G   4% /run
tmpfs           7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/vda1        99G   99G     0 100% /
tmpfs           1.6G     0  1.6G   0% /run/user/0
/dev/vdb1       197G   61M  187G   1% /data

发现/dev/vda1这个文件已经满了
我们回到根目录,查看一下到底是哪个文件磁盘占用最高:

[root@VM-90-225-centos ~]# cd /
[root@VM-90-225-centos /]# du -sh * 
0       bin
264M    boot
24K     data
0       dev
40M     etc
17M     home
0       lib
0       lib64
16K     lost+found
4.0K    media
4.0K    mnt
32M     opt
du: cannot access ‘proc/5888/task/5888/fd/3’: No such file or directory
du: cannot access ‘proc/5888/task/5888/fdinfo/3’: No such file or directory
du: cannot access ‘proc/5888/fd/3’: No such file or directory
du: cannot access ‘proc/5888/fdinfo/3’: No such file or directory
0       proc
1.7G    root
258M    run
0       sbin
4.0K    srv
0       sys
304K    tmp
96G     usr
975M    var

发现是usr文件夹最占用空间,依次递归查询最大文件夹:

[root@VM-90-225-centos /usr]# du -sh *
358M    1.2-compat
636M    bin
4.0K    etc
4.0K    games
42M     include
1.1G    lib
559M    lib64
210M    libexec
92G     local
12K     man
51M     sbin
612M    share
198M    src
0       tmp
[root@VM-90-225-centos /usr]# cd ./local/
[root@VM-90-225-centos /usr/local]# du -sh *
175M    agenttools
14M     bin
4.0K    etc
4.0K    ft_local
4.0K    games
399M    go
1.1M    hio
3.3M    include
468M    lib
4.0K    lib64
4.0K    libexec
4.0K    lost+found
89G     mysql
1.2G    mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
216M    python
25M     qcloud
541M    sa
4.0K    sbin
108K    share
4.0K    src
4.0K    tencent
4.3M    tsso_openssh
5.6M    TsysAgent
[root@VM-90-225-centos /usr/local]# cd ./mysql/
[root@VM-90-225-centos /usr/local/mysql]# du -sh *
1.3G    bin
87G     data
24K     docs
8.0K    etc
404K    include
463M    lib
272K    LICENSE
840K    man
4.0K    README
9.5M    share
24K     support-files
4.0K    tmp
[root@VM-90-225-centos /usr/local/mysql]# cd ./data/
[root@VM-90-225-centos /usr/local/mysql/data]# du -sh *
4.0K    auto.cnf
756K    binlog.000009
1.1G    binlog.000010
1.1G    binlog.000011
1.1G    binlog.000012
1.1G    binlog.000013
1.1G    binlog.000014
1.1G    binlog.000015
1.1G    binlog.000016
1.1G    binlog.000017
1.1G    binlog.000018
1.1G    binlog.000019
1.1G    binlog.000020
1.1G    binlog.000021
1.1G    binlog.000022
1.1G    binlog.000023
1.1G    binlog.000024
1.1G    binlog.000025
1.1G    binlog.000026
1.1G    binlog.000027
1.1G    binlog.000028
1.1G    binlog.000029
1.1G    binlog.000030
1.1G    binlog.000031
1.1G    binlog.000032
1.1G    binlog.000033
1.1G    binlog.000034
1.1G    binlog.000035
1.1G    binlog.000036
1.1G    binlog.000037
1.1G    binlog.000038
1.1G    binlog.000039
1.1G    binlog.000040
1.1G    binlog.000041
1.1G    binlog.000042
1.1G    binlog.000043
1.1G    binlog.000044
1.1G    binlog.000045
1.1G    binlog.000046
1.1G    binlog.000047
1.1G    binlog.000048
1.1G    binlog.000049
1.1G    binlog.000050
1.1G    binlog.000051
1.1G    binlog.000052
1.1G    binlog.000053
1.1G    binlog.000054
1.1G    binlog.000055
1.1G    binlog.000056
1.1G    binlog.000057
1.1G    binlog.000058
1.1G    binlog.000059
1.1G    binlog.000060
1.1G    binlog.000061
1.1G    binlog.000062
1.1G    binlog.000063
1.1G    binlog.000064
1.1G    binlog.000065
1.1G    binlog.000066
1.1G    binlog.000067
1.1G    binlog.000068
1.1G    binlog.000069
1.1G    binlog.000070
1.1G    binlog.000071
1.1G    binlog.000072
1.1G    binlog.000073
1.1G    binlog.000074
1.1G    binlog.000075
1.1G    binlog.000076
1.1G    binlog.000077
1.1G    binlog.000078
1.1G    binlog.000079
1.1G    binlog.000080
1.1G    binlog.000081
1.1G    binlog.000082
1.1G    binlog.000083
1.1G    binlog.000084
1.1G    binlog.000085
1.1G    binlog.000086
1.1G    binlog.000087
1.1G    binlog.000088
1.1G    binlog.000089
1.1G    binlog.000090
324M    binlog.000091
4.0K    binlog.000092
4.0K    binlog.000093
4.0K    binlog.000094
1.1G    binlog.000095
1.1G    binlog.000096
1.1G    binlog.000097
713M    binlog.000098
4.0K    binlog.index
4.0K    ca-key.pem
4.0K    ca.pem
4.0K    client-cert.pem
4.0K    client-key.pem
4.0K    history
192K    #ib_16384_0.dblwr
8.2M    #ib_16384_1.dblwr
8.0K    ib_buffer_pool
12M     ibdata1
48M     ib_logfile0
48M     ib_logfile1
12M     ibtmp1
804K    #innodb_temp
328K    ip_to_room
303M    machine_history
36K     mysql
105M    mysql.ibd
324M    new_machine_history
21M     new_room_history
463M    newtest
1.6M    performance_schema
4.0K    private_key.pem
4.0K    public_key.pem
15M     room_history
410M    room_province
13M     room_to_ip
4.0K    server-cert.pem
4.0K    server-key.pem
116K    sys
1.1M    test
48M     undo_001
48M     undo_002
4.0K    VM-90-225-centos.pid

发现是binlog占用了很多空间

解决方案

接下来就好办了,百度:mysql的binlog太多占用了空间

cd /etc/init.d
mysqld --user=root
# 强制进去

然后查看当前日志保存天数,默认是0,也就是logs不过期.

mysql> show variables like '%expire_logs_days%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 0     |
+------------------+-------+
1 row in set (0.00 sec)

编辑/etc/my.cnf文件,在[mysqld]节点中增加如下两行

max_binlog_size = 500M
expire_logs_days = 2

service mysqld restart重新启动mysql。设置便会生效。

mysql> show variables like '%expire_logs_days%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 2     |
+------------------+-------+
1 row in set (0.00 sec)
mysql> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 1 DAY);
Query OK, 0 rows affected (0.02 sec)

然后再看data文件夹:

[root@VM-90-225-centos /usr/local/mysql/data]# du -sh *
4.0K    auto.cnf
1.1G    binlog.000095
1.1G    binlog.000096
1.1G    binlog.000097
92M     binlog.000098
4.0K    binlog.000099
4.0K    binlog.000100
4.0K    binlog.000101
4.0K    binlog.000102
4.0K    binlog.000103
4.0K    binlog.index
4.0K    ca-key.pem
4.0K    ca.pem
4.0K    client-cert.pem
4.0K    client-key.pem
4.0K    history
192K    #ib_16384_0.dblwr
8.2M    #ib_16384_1.dblwr
12K     ib_buffer_pool
12M     ibdata1
48M     ib_logfile0
48M     ib_logfile1
12M     ibtmp1
804K    #innodb_temp
328K    ip_to_room
303M    machine_history
36K     mysql
105M    mysql.ibd
324M    new_machine_history
21M     new_room_history
463M    newtest
1.6M    performance_schema
4.0K    private_key.pem
4.0K    public_key.pem
15M     room_history
410M    room_province
13M     room_to_ip
4.0K    server-cert.pem
4.0K    server-key.pem
116K    sys
1.1M    test
48M     undo_001
48M     undo_002
4.0K    VM-90-225-centos.pid

旧binlog也删除了

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

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

相关文章

.NET系统架构改造的经验和教训

转自: http://robbinfan.com/blog/43/rid-off-dotnet-experience 在互联网行业,基于Unix/Linux的网站系统架构毫无疑问是当今主流的架构解决方案,这不仅仅是因为Linux本身足够的开放性,更因为围绕传统Unix/Linux社区有大量的成熟开…

yum error :No module named yum

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖…

403报错解决方案

403报错解决方案 服务器使用yum install httpd时出现403报错,参考了几个文章: 首先根据这篇文章: devcloud上yum install 安装软件报错403 打开 /root/.bashrc 文件,然后在最末尾可以看到 no_proxy: export no_pr…

控制器中获取Field值

在ASP.NET MVC程序中,我们需要POST Data到制器中,是有很多方法。但是我们想在控制器中,获取Feild值呢?怎样获取?你可以留意到有一个类FormCollection。它能帮助到我们解决这个问题。 举个简单的例子。在ASP.NET MVC应用…

new(std::nothrow)

new(std::nothrow) 顾名思义,即不抛出异常,当new一个对象失败时,默认设置该对象为NULL,这样可以方便的通过if(p NULL) 来判断new操作是否成功 普通的new操作,如果分配内存失败则会抛出异常,虽然后面一般也…

如何删除cygwin

网上大多数方法在不具备用户权限获取的情况下都不能工作。 国外有人通过很简单的命令行就实现了: Here’s how to remove Cygwin once and for all. You will need Cygwin cmd.exe 2 minutesRun cmd, navigate to C:\ (or other disk, if you have installed it in …

私有RTP协议和标准流媒体协议

先介绍下RTP协议: 实时传输协议RTP(Real-time Transport Protocol)是一个网络传输协议 ,该协议详细说明了在互联网上传递音频和视频的标准数据包格式 。 RTP标准定义了两个子协议 ,RTP和RTCP 数据传输协议RTP&#xff…

【python】入门学习(五)

字符串: 正索引,从0开始 和 负索引,从-1开始 >>> s apple >>> s[0] a >>> s[1] p >>> s[2] p >>> s[3] l >>> s[4] e >>> s[-1] e >>> s[-2] l >>> s[-3…

实现 winform 异步跨线程访问UI控件

在开发winform时经常会用到多线程防止界面出现假死现象,比如当你单击某个按钮时,需要执行很多代码,但是在执行过程中想实时的将当前执行的情况报告给用户,类型进度条或文本什么的。 这个时候很显然,如果你把要实现的内…

JavaScript对象的创建总结

方式 缺点 优点 基于已有对象扩充属性和方法 不可重用,没有约束 无 工厂方法 检测不出是什么的实例 简单封装,可以传参 构造方法 每创建一个对象就有开辟存放方法的空间 能通过instanceof检测出实例类型,可以传参 原型方式 不能…

从WebRtc学习RTP协议

文章目录TCP为何不适用于实时音视频UDP->RTPRTP协议结构JittbufferRTP扩展头RTP填充数据参考TCP为何不适用于实时音视频 可靠性是以牺牲实时性为代价的。按照TCP原理,当出现极端网络情况时,理论上每个包的时延可达到秒级以上,而且这种时延…

我的第一个android应用上架,纪念一下

好久没有写博客了,最近一直在忙着弄自己的“汽车小助手“http://www.mumayi.com/android-318299.html软件,终于在今天上架了,尽管今天的广告收入只有5毛,写个博客纪念一下。里面嵌入了万普平台的广告,大家都懂得。一天…

内核态与用户态【转载】

原文:http://blog.csdn.net/skywalkzf/article/details/5185442 内核态与用户态是操作系统的两种运行级别,intel cpu提供Ring0-Ring3三种级别的运行模式。Ring0级别最高,Ring3最低。其中特权级0(Ring0)是留给操作系统代…

解决ListView异步加载数据之后不能点击的问题

在ListView的onScroll事件中执行异步加载数据,然后使用notifyDataSetChange()函数更新适配器,之后发现listView不能点击了,这问题苦恼了我半天。最后在一篇博文中发现调用listView的requestFocusFromTouch()函数终于解决了这问题。 Java代码…

从WebRtc学习RTCP协议

文章目录RTCP支持的消息类型RTCP协议头WebRTC的反馈报文RTPFB支持的报文类型:PSFB支持的报文类型:参考RTCP是RTP的控制协议.那么RTCP能对RTP做哪些控制呢?其中最为大家熟知的就是 丢包控制。发送端发送数据后,接收端如果发现有RTP…

白话经典算法系列之中的一个 冒泡排序的三种实现

冒泡排序是很easy理解和实现,,以从小到大排序举例: 设数组长度为N。 1.比較相邻的前后二个数据,假设前面数据大于后面的数据,就将二个数据交换。 2.这样对数组的第0个数据到N-1个数据进行一次遍…

如何用java代码让android Market显示指定的程序以便用户下载?

Uri uri Uri.parse("market://search?q名称");Intent i new Intent("Intent.ACTION_VIEW", uri);startActivity(i);//根据应用程序ID应用程序的包名Uri urii Uri.parse("market://details?idcom.xiaoqiu.test");Intent ii new Intent(&quo…

无锁队列设计思路以及简要代码

文章目录非并发的一写一读环形队列多读多写环形队列非并发的一写一读环形队列 读指针: 1、先判断是否有数据 2、读取数据 3、操作指针 写指针: 1、先判断空间是否足够 2、写入数据 3、操作指针 所以代码也十分简单: bool putqueue(void* pDa…

vs 2012,vs 2013问题系列

系统环境: 64位 win7 1,问题: 之前能连接tfs进行源码管理,期间有改过本地电脑的时间,再后来使用vs 2012连接tfs却失败了。错误码:TF31002。排除了网络问题,用户权限问题,tfs服务器问…