MySQL Connector/MXJ 是一个可以通过 Java API 启动或者关闭嵌入式MySQL的工具。
可以通过 MySQL JDBC driver 连接,通过 JDBC url 或者 使用MysqldResource
编程的方式 控制MySQL 服务。
如果需要测试SQL对MySQL语法或者特性依赖性比较强,可以尝试使用该方式进行测试,并不建议使用在生产环境中。
一个例子
创建一个 maven 项目,添加依赖
1 |
|
查看一依赖关系
1 | $ mvn dependency:tree |
1 | $ mvn dependency:list |
BaseMySQLTest
1 | import com.mysql.management.MysqldResource; |
MySQLTest
1 | import com.mysql.management.util.QueryUtil; |
my.properties 配置文件
该配置文件基本上和平常使用的 my.ini
文件内容一致,此处只留下一下三个配置,
1 | port=3336 |
mysql:mysql-connector-mxj-db-files:jar:5.0.12
该jar包包含和各个平台的 mysql
(client)和mysqld
(server),还含有一个MySQL 的帮助文档com/mysql/management/MySQL_Help.txt
。
该文件有140,可以先下载,再手动安装到本地maven仓库里面,
jar 包内容大致如下:
1 | $ tar tvf .m2/repository/mysql/mysql-connector-mxj-db-files/5.0.12/mysql-connector-mxj-db-files-5.0.12.jar |
baseDir 和 dataDir
启动之后会把 mysql
和mysqld
拷贝到 baseDir 的 bin 目录下,
把 mysql 的基础数据文件(表机构和数据,在 mysql-connector-mxj-db-files-5.0.12.jar/5-5-9/data_dir.jar)拷贝到 dataDir 下。
实际上 MySQL Connector/MXJ 官方已经不再更新了,最新的版本是 5.0.12 。
估计可以替换通过 baseDir 中的 mysql 和 mysqld,来进行升级。 最新的 mxj-db-files 包含的mysql版本如下:。
1 | $ /opt/data/mysql-embed/baseDir/bin/mysql -V |
目录结构
1 | $ tree |
参考
MySQL Connector/MXJ (Archived Versions)