误删DDEV默认db数据库后无法访问容器及重建项目的解决办法
解决DDEV默认
db数据库丢失后的重建问题 步骤1:强制重置数据库容器(彻底清理方案)
如果不需要保留现有数据库数据,直接执行以下命令彻底重置数据库环境,DDEV会自动重建默认的db数据库:ddev stop --remove-data ddev start步骤2:手动创建缺失的
db数据库(保留数据方案)
若要保留容器内其他数据库的数据,按以下操作执行:- 确认
ddev-project-db容器处于运行状态,可通过docker ps查看 - 进入数据库容器:
docker exec -it ddev-project-db bash - 使用root账号登录MySQL(DDEV默认root密码为
root):mysql -uroot -proot - 创建默认
db数据库并配置权限:CREATE DATABASE IF NOT EXISTS db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON db.* TO 'db'@'%' IDENTIFIED BY 'db'; FLUSH PRIVILEGES; - 退出MySQL和容器后,重启DDEV项目:
ddev restart
- 确认
步骤3:验证修复效果
执行以下命令确认db数据库已恢复:ddev mysql -e "SHOW DATABASES;"若输出结果包含
db,说明修复完成,此时ddev ssh也能正常使用。
问题原因说明
DDEV的数据库容器健康检查依赖默认的db数据库存在,该库被删除后,健康检查失败,导致DDEV判定项目未运行,即使容器实际处于运行状态。重建db数据库并配置好对应权限后,健康检查即可通过,项目恢复正常。
内容的提问来源于stack exchange,提问作者baikho
相关产品推荐
相关产品推荐

