自从将我的操作系统升级到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上运行现有依赖项的方法?
答案 0 :(得分:0)
对于在MacOS Catalina上存在相同问题的任何人,您都可以在我的仓库(https://github.com/pengyue/mysql-connector-mxj-mac-os-catalina)中阅读README.md,该仓库具有MacOS Catalina的64位可执行文件,并且此改进的连接器可在Catalina上使用。
要解释我做了什么:
5-5-9
platform-map.properties
中添加64位MacOS的平台映射jar cvf mysql-connector-mxj-db-files-5.0.12.jar .
~/.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,但这可能需要在项目中进行一些代码更改。