Wamp环境安装Magento2.4.x示例数据报数据补丁应用错误求助
WAMP环境安装带示例数据Magento 2.4.x系列报错解决
故障复现条件
- 安装包来源:Magento官方下载页提供的集成示例数据版本
- 涉及版本:2.4.3、2.4.3-p2、2.4.4
- 触发场景:WAMP服务器环境下执行安装流程,执行到分组产品示例数据导入步骤时报错
- 报错信息:
Unable to apply data patch Magento\GroupedProductSampleData\Setup\Patch\Data\InstallGroupedProductSampleData for module Magento_GroupedProductSampleData. Original exception message: Rolled back transaction has not been completed correctly.
- 对照测试结果:同版本不含示例数据的安装包可正常完成安装,初步排查指向CSV导入相关逻辑异常。
根因说明
该报错并非官方安装包内CSV文件损坏,核心原因是WAMP默认的PHP、数据库配置阈值过低,无法承载示例数据批量导入的大事务操作,触发事务回滚逻辑异常;部分场景下是本地域名解析配置不当导致的数据库连接中断。
具体操作步骤
按顺序操作即可解决问题:
- 调整对应运行版本的PHP配置,打开WAMP管理菜单找到对应PHP版本的
php.ini文件,修改以下参数后保存:
max_execution_time = 18000 max_input_time = 18000 memory_limit = 4G post_max_size = 128M upload_max_filesize = 128M
修改完成后重启WAMP的PHP服务。
*如果使用的是32位WAMP环境,memory_limit设置为2G即可,避免进程启动失败。
2. 调整数据库配置,打开WAMP管理菜单找到MySQL/MariaDB的my.ini配置文件,在[mysqld]配置段下新增/修改以下参数:
max_allowed_packet = 64M innodb_buffer_pool_size = 4G innodb_log_file_size = 1G innodb_lock_wait_timeout = 1800 autocommit = 1
修改完成后重启WAMP的数据库服务。32位环境下innodb_buffer_pool_size调整为2G即可。
3. 清理历史安装残留:如果之前安装失败过,不要复用原有数据库,新建空数据库备用;进入Magento代码根目录,执行以下命令清理临时文件:
php bin/magento cache:clean php bin/magento cache:flush rm -rf var/cache/* var/page_cache/* generated/*
- 重新执行安装流程,注意安装时填写的数据库连接地址不要用
localhost,替换为127.0.0.1;本地访问域名建议配置自定义虚拟主机域名,不要直接用localhost访问。 - 若以上操作完成后仍触发相同报错,可对补丁文件做兼容修改:找到
vendor/magento/module-grouped-product-sample-data/Setup/Patch/Data/InstallGroupedProductSampleData.php文件,在apply()方法开头新增一行事务重置代码:
public function apply() { // 新增兼容代码,重置异常回滚状态 $this->moduleDataSetup->getConnection()->rollBack(); // 保留原有所有业务逻辑 $this->groupedProductSetup->install(); }
该修改不会影响示例数据完整性,安装完成后依次执行索引重建、缓存清理命令即可正常使用:
php bin/magento indexer:reindex php bin/magento cache:clean
内容的提问来源于stack exchange,提问作者Akhilesh
相关产品推荐
相关产品推荐

