无法从官方Docker镜像启动MySQL:设备空间不足求助
解决Docker运行MySQL 8.0.32时“磁盘空间不足”的问题
错误提示mysqld: Error writing file '/var/lib/mysql/auto.cnf' (OS errno 28 - No space left on device)的根源是磁盘空间不足,MySQL容器无法在指定路径下写入初始化文件,以下是具体解决步骤:
1. 检查宿主机磁盘使用情况
执行以下命令查看所有分区的空间占用,定位满额的分区:
df -h
2. 清理Docker冗余资源
如果是Docker镜像/容器/卷所在分区满了,先清理无用资源:
- 停止并删除报错的MySQL容器(先通过
docker ps -a找到容器ID):docker stop <容器ID> docker rm <容器ID> - 一键清理所有未使用的镜像、容器、卷和网络(谨慎操作,确认不需要的资源再执行):
docker system prune -a - 单独清理未使用的数据卷(MySQL的数据默认存储在卷中,旧卷可能占用大量空间):
docker volume prune
3. 重新运行MySQL容器(可选:自定义数据目录)
如果不想清理原有资源,可将MySQL数据目录挂载到宿主机有剩余空间的路径,确保目标目录为空且权限足够:
# 先在宿主机创建有空间的目录,比如/home/mysql-data mkdir -p /home/mysql-data chmod 777 /home/mysql-data # 挂载目录并启动容器 docker run -e MYSQL_ALLOW_EMPTY_PASSWORD=true -v /home/mysql-data:/var/lib/mysql -d mysql:8.0.32
内容的提问来源于stack exchange,提问作者Itération 122442
相关产品推荐
相关产品推荐

