MySQL Connector/MXJ无法在Mac OS启动的解决办法

错误描述

MySQL Connector/MXJ用于使用JUnit测试的时候作为嵌入式的MySQL数据库使用,这样可以测试MySQL的特性,非常方便。但该项目已经在2012年的时候被官方停用了,最后一个版本是5.0.12,但在最新的Mac OS下启动的时候会出现下面的错误:

这是因为MySQL Connector/MX最后一个版本只提供了32位的程序,并没有提供64位的程序,而最新的Mac OS已经不再允许运行32位的程序了,因此需要手动修改使其增加64位的程序。

添加64位的Mac OS平台MySQL可执行文件

直接下载修改好的jar包

如果不想了解具体的过程,可以直接下载我已经做好的mysql-connector-mxj-db-files-5.0.12.jar包,然后使用mvn命令进行安装替换即可。

制作过程

所有的可执行程序都放在了mysql-connector-mxj-db-files-5.0.12.jar这个包里面,首先将jar包解压缩,可以看出里面MySQL的版本是5.5.9,在5-5-9目录下创建一个名为Mac_OS_X-x86_64的新的目录。然后到MySQL官方下载5.5.9 64位的压缩包:

下载解压之后,将bin目录下的mysqlmysqld两个文件复制到前面创建的Mac_OS_X-x86_64目录下。然后再此目录下创建一个新的version.txt文件,内容如下:

mysql-5.5.9-osx10.5-x86_64/bin/mysqld

接下来回到解压jar包的根目录下,打开platform-map.properties文件,可以看到这个文件里面定义了平台和可执行文件的映射关系,将原来的Mac_OS_X-x86_64=Mac_OS_X-i386修改为:Mac_OS_X-x86_64=Mac_OS_X-x86_64

最后重新使用jar命令将新目录进行打包:

jar -cf ../mysql-connector-mxj-db-files-5.0.12.jar *

重新发布到Maven服务器

可以使用mvn install命令将新的jar包重新安装到本地,pom文件可以使用原来的,命令如下:

mvn install:install-file -Dfile=mysql-connector-mxj-db-files-5.0.12.jar -DpomFile=mysql-connector-mxj-db-files-5.0.12.pom

如果有Maven的私库服务器的话,也可以直接上传发布到服务器上。

参考资料:
Embedded MySQL in Java With Connector/MXJ and 64-bit Linux

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注