You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sail无法启动MySQL:版本降级不兼容问题求助

解决Laravel Sail MySQL版本冲突导致容器无法启动的问题

错误提示[InnoDB] Cannot boot server version 80032 on data directory built by version 80039. Downgrade is not supported的核心原因:你的项目之前使用过更高版本(8.0.39)的MySQL容器创建了数据存储卷,现在Sail默认启动的是8.0.32版本的MySQL容器,而InnoDB不支持从高版本数据目录降级启动低版本服务。

方案1:无需保留现有数据(本地开发环境首选)

  • 停止所有Sail容器并彻底移除关联的数据卷(此操作会删除现有数据库数据):
    vendor/bin/sail down -v
    
  • 重新构建并启动容器:
    vendor/bin/sail up --build
    
  • 容器启动后,运行数据库迁移初始化数据:
    vendor/bin/sail artisan migrate
    

方案2:需要保留现有数据库数据

  1. 备份现有数据
    • 执行以下命令列出所有Docker卷,找到名称类似[项目目录名]_mysql的目标卷:
      docker volume ls
      
    • 使用高版本MySQL容器导出数据(替换[卷名]、[数据库密码]、[数据库名]为实际值):
      docker run --rm -v [卷名]:/var/lib/mysql -v $(pwd):/backup mysql:8.0.39 mysqldump -u root -p[数据库密码] [数据库名] > backup.sql
      
  2. 移除旧数据卷
    vendor/bin/sail down -v
    
  3. 修改Sail的MySQL版本为8.0.39
    • 打开项目根目录的.env文件,添加或修改配置:
      DB_VERSION=8.0.39
      
  4. 重新启动容器并导入备份
    • 启动容器:
      vendor/bin/sail up --build
      
    • 导入备份的数据(替换[数据库密码]、[数据库名]为实际值):
      vendor/bin/sail mysql -u root -p[数据库密码] [数据库名] < backup.sql
      

补充说明:Sail的MySQL容器版本完全由.env中的DB_VERSION控制,和你本地安装的MySQL版本无关。后续启动前可检查该配置,确保与项目历史使用版本一致,避免再次出现版本冲突。

内容的提问来源于stack exchange,提问作者Udders

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 22:39:53