AzerothCore Docker安装报错:数据库提示崩溃后不支持升级
解决AzerothCore Docker安装中ac-database容器启动错误
错误原因
该错误源于MySQL容器此前以innodb_fast_shutdown=2模式异常关闭,导致redo日志未完成清理,且当前使用的MySQL版本与生成该redo日志的版本(8.0.29)不兼容,无法直接完成升级启动。
中文错误日志翻译
[错误] [MY-012526] [InnoDB] 在innodb_fast_shutdown = 2的情况下崩溃或关闭后,不支持升级。此重做日志由MySQL 8.0.29创建,且在逻辑上不为空。 [错误] [MY-012930] [InnoDB] 插件初始化因通用错误中止。 [错误] [MY-010020] [服务器] 无法初始化DD存储引擎。 [错误] [MY-010020] [服务器] 数据字典初始化失败。 [错误] [MY-010119] [服务器] 正在中止。
解决方案
方案1:清理旧数据卷(适合全新安装场景)
如果是首次部署、无已有数据需要保留,直接删除数据库数据卷重建即可:
- 停止并删除故障容器:
docker-compose stop ac-database && docker-compose rm -f ac-database - 查看并定位数据库数据卷:
docker volume ls(通常名称类似azerothcore_ac-db-data) - 删除目标数据卷:
docker volume rm <你的数据库卷名> - 重新启动容器:
docker-compose up -d ac-database
方案2:修复现有数据库(适合需保留数据场景)
需要用生成redo日志的MySQL版本(8.0.29)启动容器,完成正常关闭后再切换回原版本:
- 修改
docker-compose.yml中ac-database服务的镜像版本为mysql:8.0.29 - 启动容器并等待正常运行:
docker-compose up -d ac-database - 正常停止容器(避免强制终止):
docker-compose stop ac-database - 将镜像版本改回原配置,重新启动容器
预防措施
- 避免强制终止数据库容器,优先使用
docker-compose stop命令停止服务 - 在
docker-compose.yml的ac-database服务中添加配置,降低异常关闭风险:services: ac-database: # 其他原有配置 command: --innodb-fast-shutdown=1
内容的提问来源于stack exchange,提问作者Francesco Borzi
相关产品推荐
相关产品推荐

