Windows 二进制文件默默退出

Windows 二进制文件默默退出

所有 mysql 二进制文件(bin\*.exe)都无言地退出。

运行 Windows Server 2016 作为主机。mcr.microsoft.com/windows/servercore使用原生 Windows 容器在内部运行 docker 镜像。mysql-5.6.43-winx64.zip在容器内解压。所有二进制文件均不起作用。例如,

c:\mysql\bin> mysqld.exe --help
c:\mysql\bin>
  • 控制台上没有错误。
  • Windows 事件应用程序、安全、设置、系统日志中均未提及“mysql”。( wevtutil ... | findstr /i mysql)。
  • dumpbin从 Visual Studio 中使用来mysqld.exe查看/imports,即它需要哪些 DLL - 所有都存在于容器内。
  • 已尝试bin\replace.exebin\mysql.exe等,结果均相同。
  • 检查操作系统和 MySQL 二进制文件是否都是 x64 - 至少根据 Docker 镜像描述和 mysql 的 zip 名称,它们是的。

我很确定这与 MySQL 没有任何关系,因为我之前在其他程序中看到过这种行为,尤其是在 nanoserver 上。

我如何找出异常行为的原因?

谢谢。

答案1

这完全是由于缺少 DLL 造成的。当我说容器中存在所有 DLL 时,结果发现虽然 DLL 文件确实存在,但它们是错误的版本或构建或其他问题,具体来说msvcr100.dll

相关内容