我正在尝试让 MariaDB4J 在我的新 M1 MacBook Pro 上运行,但效果不太好。
我正在运行 [电子邮件受保护] 和 mariadb 10.6.4 的 Arm 版本,两者均随 Homebrew 安装。
首先,我遇到了 libssl 找不到 libssl 的问题,它必须有 1.0,所以我从库期望的 1.0 路径到自制程序 1.1 目的地安装了符号链接。根据 mariadb GitHub 页面上的各种问题线程,这应该可行。
所以,它确实导致找到了 libssl,但现在我在日志中遇到了另一个问题:
“原因:尝试过:'/usr/local/opt/openssl/lib/libssl.1.0.0.dylib'(mach-o 文件,但是不兼容的体系结构(有'arm64',需要'x86_64'))”
所以,我猜想something/mariadb4j需要x86版本的libssl,但我有arm?我不知道如何解决这个问题,所以希望有人能在 M1 上解决这个问题。感谢指点。
我是 MariaDB4j 的作者,并且可以确认目前这是不可能的/不会“正常工作”。原因是 MariaDB4j 所做的只是将特定于平台的 MariaDB 二进制文件打包到 JAR 中,然后本地
exec
utes mysqld
。没有人将 M1 的 MariaDB 二进制文件贡献给 MariaDB4j...但是非常欢迎对该项目的贡献! ;-) https://github.com/MariaDB4j/MariaDB4j/issues/497 跟踪此 FR。
如果有人感兴趣,我可以从源代码构建最新的 MariaDB4j,并支持 Apple Silicon (M1) 处理器。
步骤:
克隆 MariaDB4j GitHub 存储库并切换到 master 分支。
从源代码构建具有 ARM-64 支持的 MariaDB:
arch -arm64 brew install [email protected] --build-from-source
转到文件夹
/opt/homebrew/Cellar/[email protected]/10.2.41
并将所有必需的二进制文件从 bin
和 script
子文件夹复制到 MariaDB4j/DBs/mariaDB4j-db-mac64-10.2.11/src/main/resources/ch/vorburger/mariadb4j/mariadb-10.2.11/osx/bin
。
在终端中,转到
MariaDB4j/DBs/mariaDB4j-db-mac64-10.2.11
并执行 mvn install
。这会将 Mac x86 二进制文件的 Maven 依赖项替换为包含 ARM-64 二进制文件的依赖项。
就是这样,现在您的测试将在 M1 中运行:)
注意:如果您的项目没有使用最新的 MariaDB4j 版本,请首先切换到与您的 MariaDB4j 依赖项版本匹配的标签。