平台无法启动日志报错etcd 数据库空间已满(mvcc: database space exceeded)
-
解决方式:
1.进入etcd容器 执行etcdctl --user="root" --password="dell123" get --prefix /airiot/config/pro.json 需要将执行输出的内容备份
备份内容示例仅供参考:
2. 删除旧容器
docker rm -f etcd
3. 删除旧目录
rm -rf airiot/db/etcd
4. 创建新目录
mkdir -p airiot/db/etcd
5. 设置目录权限
chmod -R 777 airiot/db/etcd
6. 修改 YAML 配置
etcd 容器配置需要修改 command:
etcd:
command:
- /opt/bitnami/scripts/etcd/run.sh
- --auto-compaction-retention=1
- --auto-compaction-mode=periodic
container_name: etcd
environment:
- ETCD_ROOT_PASSWORD=dell123
- ETCD_QUOTA_BACKEND_BYTES=8388608000
image: bitnami/etcd:3.5
logging:
driver: json-file
options:
max-file: "1"
max-size: 100m
networks:
- backend
- operation
ports:
- 2379:2379
- 2380:2380
restart: always
ulimits:
nofile:
hard: 3072
soft: 1024
nproc: 4096
volumes:
- /opt/app/airiot/db/etcd:/bitnami/etcd
- /etc/localtime:/etc/localtime
增加框起来的内容
![51990514-aabb-45eb-bcf0-34cbab18238c-img_v3_02vk_9ec2a6f2-6e10-4aa9-a745-789e7f9cd8ag.jpg]
7. 启动新容器
./run.sh
etcd 容器启动并运行
8. 进入容器
docker exec -it etcd sh
9. 恢复配置到 etcd
etcdctl --user="root" --password="dell123"
put "/airiot/config/pro.json" '备份的json内容'ps:

执行顺序
备份 → 删除旧容器 → 删除旧目录 → 创建新目录 → 设置权限 → 修改 YAML 配置 → 启动新容器 → 进入容器 → 恢复配置