MysqldResource在MacOS Catalina上无法工作。

3
自从升级到Mac Catalina操作系统后,当我尝试运行以下内容时,会出现以下错误:
    MysqldResource mysqldResource = new MysqldResource(uri); // Uri - temp db dir
            mysqldResource.start("embedded-mysqld-thread-" + System.currentTimeMillis(), databaseOptions);

看起来问题的根源在于依赖项“mysql-connector-mxj-db-files”具有32位格式的二进制文件,而catalina已经停止支持它。

这是我收到的错误信息:

    Exception in thread "embedded-mysqld-thread-1574931580040" com.mysql.management.util.WrappedException: java.io.IOException: Cannot run program "/private/var/folders/l5/4ywgvbbj1kvgvrwxzp6dz82c0000gn/T/test_db_24166997810717/bin/mysqld": error=86, Bad CPU type in executable
        at com.mysql.management.util.Exceptions.toRuntime(Exceptions.java:55)
        at com.mysql.management.util.Exceptions$Block.exec(Exceptions.java:89)
        at com.mysql.management.util.RuntimeI$Default.exec(RuntimeI.java:180)
        at com.mysql.management.util.Shell$Default.run(Shell.java:140)
        at java.lang.Thread.run(Thread.java:748)
    Caused by: java.io.IOException: Cannot run program "/private/var/folders/l5/4ywgvbbj1kvgvrwxzp6dz82c0000gn/T/test_db_24166997810717/bin/mysqld": error=86, Bad CPU type in executable
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at java.lang.Runtime.exec(Runtime.java:620)
        at com.mysql.management.util.RuntimeI$Default$1.inner(RuntimeI.java:177)
        at com.mysql.management.util.Exceptions$Block.exec(Exceptions.java:86)
        ... 3 more
    Caused by: java.io.IOException: error=86, Bad CPU type in executable
        at java.lang.UNIXProcess.forkAndExec(Native Method)
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
        at java.lang.ProcessImpl.start(ProcessImpl.java:134)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
        ... 6 more

有没有人知道mysql-connector-java的替代方案,或者知道如何在Mac OS Catalina上运行现有的依赖项?


在谷歌上搜索“mac catalina bad cpu type”,以获取有关尝试在64位设备上运行32位数据的几个线索。 - Wilson Hauck
1个回答

1

对于在MacOS Catalina上遇到相同问题的人,您可以按照我的存储库中的README.md(https://github.com/pengyue/mysql-connector-mxj-mac-os-catalina)操作,其中包含适用于MacOS Catalina的64位可执行文件,并且此改进的连接器可以在Catalina上运行。

我所做的解释如下:

  • 从MySQL下载64位可执行文件到文件夹5-5-9
  • platform-map.properties中添加64位MacOS的平台映射
  • 通过使用jar cvf mysql-connector-mxj-db-files-5.0.12.jar .创建一个jar文件
  • 将刚刚创建的jar文件替换您mvn设置文件夹~/.m2/repository/mysql/mysql-connector-mxj-db-files/5.0.12/中的jar文件

这个解决方案对我的项目很好用,不幸的是我找不到mysql-connector-mxj的github,因为它已经过时并且不再维护了。

另一种选择是使用wix-embedded-mysql(https://github.com/wix/wix-embedded-mysql)代替mysql-connector-mxj,但这可能需要对您的项目进行一些代码更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接