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、在开启第七个连接,依然报连接数过多。
结论:磁盘空间占满,可能不会导致连接数过多,连接不上情况。主要还是因为本身连接数超过数据库最大连接数限制。




