概要
对于一些arm的操作系统,使用arm版mysql8.0.37及一下版本的数据库进行mysql初始化的时候,报错
error libcrypto.so.3: ELF load command alignment not page-aligned。
原因分析
主要原因是库的版本没有对齐,
因为Linux aarch64平台默认页风格:4k、16k和64k页面大小。
4k系统可以加载具有4k和64k页面大小的二进制文件,而64k系统只能加载64k二进制文件。
因此这些安装包的mysql有兼容性问题导致报错。
解决方式
- 重新编译openssl3.0后,替换mysql包中的libssl.so.3 libcrypto.so.3后,可以初始化成功
- 使用mysql版本为8.0.38以上的版本,官方已经修复关于libssl.so.3 libcrypto.so.3问题。
编译程序使用了patchelf --page-size=65536 即64k,可以兼容4k和64k的page size。 - 自行下载mysql的源码,进行编译安装