暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql数据目录空间被占满,会不会导致数据库连接数过多?

原创 闫武建 2022-01-07
889

1、环境描述

mysql版本:8.0.26

操作系统:centos 7.4

数据目录:/data/mysql

数据目录大小:50G

数据库最大连接数:5


2、模拟:登录只最大连接数;scp大文件到数据目录占满空间;切换日志。

root@mysqldb 20:17:  [(none)]> show variables like 'max_connections';

+-----------------+-------+

| Variable_name   | Value |

+-----------------+-------+

| max_connections | 5     |

+-----------------+-------+

1 row in set (0.01 sec)


[root@localhost ~]# df -h

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root   50G   12G   39G  23% /            

devtmpfs                  16G     0   16G   0% /dev

tmpfs                     16G     0   16G   0% /dev/shm

tmpfs                     16G  170M   16G   2% /run

tmpfs                     16G     0   16G   0% /sys/fs/cgroup

/dev/sda1               1014M  161M  854M  16% /boot

/dev/mapper/centos-home  2.4T   33M  2.4T   1% /home

tmpfs                    3.2G     0  3.2G   0% /run/user/1000

tmpfs                    3.2G     0  3.2G   0% /run/user/0

## /data/mysql 根目录下,共50G


root@mysqldb 20:18:  [(none)]> show processlist;   

+----+-----------------+-----------+------+---------+-------+------------------------+------------------+

| Id | User            | Host      | db   | Command | Time  | State                  | Info             |

+----+-----------------+-----------+------+---------+-------+------------------------+------------------+

|  5 | event_scheduler | localhost | NULL | Daemon  | 30422 | Waiting on empty queue | NULL             |

| 10 | root            | localhost | NULL | Query   |     0 | init                   | show processlist |

| 11 | root            | localhost | NULL | Sleep   |    32 |                        | NULL             |

| 12 | root            | localhost | NULL | Sleep   |    29 |                        | NULL             |

| 13 | root            | localhost | NULL | Sleep   |    27 |                        | NULL             |

| 14 | root            | localhost | NULL | Sleep   |    23 |                        | NULL             |

| 15 | root            | localhost | NULL | Sleep   |    16 |                        | NULL             |

+----+-----------------+-----------+------+---------+-------+------------------------+------------------+

7 rows in set (0.00 sec)

###  最大连接数为5,实际连接了6个会话


[root@localhost ~]# sh login.sh                                                                  

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 1040 (HY000): Too many connections

###  登录第七个会话显示太多连接数


[root@localhost ~]# df -h

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root   50G   50G   20K 100% /                  

devtmpfs                  16G     0   16G   0% /dev

tmpfs                     16G     0   16G   0% /dev/shm

tmpfs                     16G  178M   16G   2% /run

tmpfs                     16G     0   16G   0% /sys/fs/cgroup

/dev/sda1               1014M  161M  854M  16% /boot

/dev/mapper/centos-home  2.4T   33M  2.4T   1% /home

tmpfs                    3.2G     0  3.2G   0% /run/user/1000

tmpfs                    3.2G     0  3.2G   0% /run/user/0

###  传入文件后,空间占满


root@mysqldb 20:32:  [mysql]> flush logs;  

###  刷日志后,命令行卡住,同时error.log报空间不足


[root@localhost ~]# tail -100f /data/mysql/error.log

2021-09-17T20:33:32.556945-04:00 16 [ERROR] [MY-000035] [Server] Disk is full writing '/data/mysql/mybinlog.~rec~' (OS errno 28 - No space left on device). Waiting for someone to free space... Retry in 60 secs. Message reprinted in 600 secs.


以下出现两种场景:

1、关闭原有6个连接的一个,重新连接---->正常连接

2、在开启第七个连接,依然报连接数过多。


结论:磁盘空间占满,可能不会导致连接数过多,连接不上情况。主要还是因为本身连接数超过数据库最大连接数限制。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论