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

Wix Embedded MySQL启动失败:CommandFailedException报'Stream closed'

针对Wix Embedded MySQL单元测试在Ubuntu 20.04报错的解决方案

1. 检查AppArmor限制

Ubuntu的AppArmor安全模块可能限制了嵌入式MySQL的文件或网络操作,导致流关闭。

  • 临时放宽规则测试:
    sudo aa-complain /etc/apparmor.d/usr.sbin.mysqld
    
  • 测试正常后,再考虑修改AppArmor规则添加永久例外。

2. 调整临时目录权限

Wix Embedded MySQL会在临时目录下载解压MySQL二进制包,Ubuntu的/tmp可能存在隔离限制:

  • 显式指定一个当前用户有权限的临时目录,在代码配置中添加:
    EmbeddedMysql.installationDir(new File("/home/your-user/mysql-tmp"))
    
  • 确保该目录权限全开(chmod 777 /home/your-user/mysql-tmp,仅测试场景使用)。

3. 禁用SSL连接

Ubuntu环境可能默认强制SSL,而嵌入式实例未配置相关参数,导致连接中断:

  • 在创建MysqldConfig时禁用SSL:
    MysqldConfig config = MysqldConfig.aMysqldConfig(v8_0_24)
        .withSslMode(SslMode.DISABLED)
        .build();
    

4. 提高文件描述符限制

Ubuntu默认的文件描述符数量可能无法满足嵌入式MySQL的需求,导致流关闭:

  • 临时提升当前会话的文件描述符限制:
    ulimit -n 65535
    
  • 若测试有效,可修改/etc/security/limits.conf设置永久规则:
    * soft nofile 65535
    * hard nofile 65535
    

5. 替换MySQL二进制包版本

默认下载的二进制包可能与Ubuntu 20.04存在兼容性问题,手动指定适配版本:

EmbeddedMysql.anEmbeddedMysql(MysqldConfig.aMysqldConfig(v8_0_30) // 选择确认兼容Ubuntu的版本
    .withUser("sa", "")
    .build())
    .start();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:10:50