解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题

1:问题描述

在本地virtualbox创建的虚拟机中,已有了mysql服务,从外部打包了一个数据库,想要导入到这个虚机的数据库中,将这个sql文件上传到虚机时,执行命令
df -h
发现此时虚拟机的磁盘已经用尽(只怪自己当初创建虚拟机时没有分配更多的磁盘),如下图所示
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第1张图片
此外,由于磁盘空间用尽,mysql服务也宕机了,且无法启动,报错如下

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

此时想要启动mysql,必须要释放磁盘空间,方法有2种:
(1)删除无用的大文件
(2)扩容

2:问题解决

(1)删除无用的大文件

这个方法要找到大文件的位置,可以通过在不同的目录下执行如下命令,可以查看当前目录下各个文件所占空间大小

du -sh *

结果如下,可以酌情删除

[root@localhost opt]# du -sh *
684M    lbaas
550M    x86_20220527.tar.gz
211M    x86_20220822.tar.gz

在我删除掉一些大文件后,磁盘空间降了下来,
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第2张图片
但是这种方式需要自己去找大文件,而且必须要提供足够大的空间,同时还要注意经常清理,最难受的是,一旦想要上传到该虚拟机上的文件过大,就会再次崩溃。因此,我推荐方法(2),一劳永逸。

(2)扩容

步骤1:分配额外的磁盘空间

首先要先关闭虚拟机(virtualbox似乎不支持热扩容),不然如下的配置是灰色,不可操作。
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第3张图片
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第4张图片
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第5张图片

解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第6张图片
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第7张图片
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第8张图片
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第9张图片
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第10张图片
事情到此,还没有结束,因为系统还没有识别到新的磁盘,接着向下操作

步骤2:识别并挂载磁盘

首先打开虚拟机
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第11张图片
登录后,我们执行一下命令df -h后发现,我们的磁盘空间还是36G,新的4G没有算在内,这是因为系统还没有识别到这个磁盘。
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第12张图片

1:查看当前虚拟机磁盘
lsblk

输入命令后,能够查看到我们新建的这个磁盘,名字叫sdc,如果你是第一次扩容,名字默认是sdb我们能够看到,之前的sda和第一次我扩容的sdb都在root下,sdc还没有关联上。
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第13张图片

2:接着输入命令查看磁盘编号,即返回结果sdc位置
ls /dev/sd*

结果如下
在这里插入图片描述

3:创建pv

注意,这里要写你刚创建的盘名,如果你第一次创建,应该是sdb

pvcreate /dev/sdc

如下结果表明创建成功

[root@localhost ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created.
4:将pv加入到虚拟硬盘组中,扩容

先查询现在的vg组信息,输入vgs

vgs

结果如下,说明此时4G的新空间还没有挂载上来,这里注意如下结果所示,当前的组名为c1,这个名字具体是什么,取决于你自己的虚拟机。

[root@localhost ~]# vgs
  VG #PV #LV #SN Attr   VSize  VFree  
  cl   2   2   0 wz--n- 36.99g 228.00m

扩展这个虚拟硬盘组(注意这里是c1的组,且sdc和sdb的区别这里不再赘述)

vgextend cl /dev/sdc

结果如下,说明成功扩展vg的卷

[root@localhost opt]# vgextend cl /dev/sdb
  Volume group "cl" successfully extended

扩展了vg后我们再执行命令vgs,发现已经扩展了,变为40G了
在这里插入图片描述
不过到这里还差最后一步,才会在df -h中显示新的盘符,实现扩容。

5:扩展lv

先查看lv的信息,输入如下命令

lvs

结果如下,发现还是只有原来的大小
在这里插入图片描述
输入命令如下,注意,下面命令的cl-root的来源是vg的名称和root用户的拼接也可以看做df-h后显示的文件系统的名称

lvextend -L +4G /dev/mapper/cl-root

解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第14张图片
执行结果如下

[root@localhost ~]# lvextend -L +4G /dev/mapper/cl-root
  Size of logical volume cl/root changed from 35.97 GiB (9208 extents) to 39.97 GiB (10232 extents).
  Logical volume cl/root successfully resized.
6:让系统重新识别盘符

输入如下命令,同样注意cl-root的名称

xfs_growfs /dev/mapper/cl-root

解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第15张图片

7:查看磁盘空间df -h
df -h

如下结果,说明扩容成功。
解决虚拟机磁盘满了,无法上传文件,给虚拟机扩容问题_第16张图片

你可能感兴趣的:(mysql,linux,数据库)