Apache OFBiz 16.11.04从Derby迁移MySQL的JDBC JAR配置求助
从Derby迁移到MySQL的JDBC驱动配置指南(OFBiz 16.11.04)
我完全懂你现在的困扰——OFBiz 16.11.04确实砍掉了旧教程里的/framework/entity/lib/jdbc路径,加上对JAR文件不太熟悉,迁移数据库时卡在这里太正常了。下面我给你一步步捋清楚全流程,保证你能搞定:
第一步:准备MySQL JDBC驱动JAR
- 首先下载和你的MySQL服务器版本匹配的MySQL Connector/J驱动:
- 如果你的MySQL是5.x系列,选
mysql-connector-java-5.1.x版本(比如mysql-connector-java-5.1.49.jar) - 如果是MySQL 8.x系列,选
mysql-connector-java-8.0.x版本(比如mysql-connector-java-8.0.33.jar)
- 如果你的MySQL是5.x系列,选
- 把下载好的JAR文件直接放到OFBiz的
framework/entity/lib/目录下——这是16.11.04版本存放JDBC驱动的默认路径,OFBiz启动时会自动加载这里的JAR,不用手动配置类路径。
第二步:修改数据库连接配置
找到OFBiz的核心配置文件framework/entity/config/entityengine.xml,做以下修改:
- 替换数据源配置:找到原来的Derby数据源节点(通常
name是localderby或default),替换成MySQL的配置:<datasource name="localmysql" helper-class="org.apache.ofbiz.entity.datasource.GenericHelperDAO" field-type-name="mysql" check-on-start="true" add-missing-on-start="true" check-pks-on-start="false" use-foreign-keys="true" join-style="ansi-no-parenthesis" alias-view-columns="false" drop-fk-use-constraint-names="true"> <read-data reader-name="tenant"/> <read-data reader-name="seed"/> <read-data reader-name="seed-initial"/> <read-data reader-name="demo"/> <!-- 不需要演示数据可以删掉这行 --> <read-data reader-name="ext"/> <inline-jdbc jdbc-driver="com.mysql.cj.jdbc.Driver" <!-- MySQL 8.x用这个,5.x换成com.mysql.jdbc.Driver --> jdbc-uri="jdbc:mysql://localhost:3306/ofbiz?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true" jdbc-username="你的MySQL用户名" jdbc-password="你的MySQL密码" isolation-level="ReadCommitted" pool-minsize="2" pool-maxsize="20" time-between-eviction-runs-millis="600000"/> </datasource> - 切换默认数据源:找到文件里的
<delegator>节点,把datasource-name的值改成你刚才配置的localmysql,比如:<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false"> <group-map group-name="org.apache.ofbiz" datasource-name="localmysql"/> </delegator>
第三步:初始化MySQL数据库
在终端进入OFBiz根目录,执行以下命令初始化数据库:
- 如果你需要加载演示数据:
./ant clean-all load-demo - 只加载基础种子数据(不需要演示内容):
./ant clean-all load-seed
注意:执行
clean-all会清除旧的Derby数据,确保你不需要这些数据再执行;另外要提前在MySQL里创建好名为ofbiz的数据库(如果JDBC URI里指定了其他库名,对应创建即可)。
第四步:验证配置
启动OFBiz:
./ant start
访问后台管理页面(默认地址是http://localhost:8080/control/login),登录后尝试创建一条测试数据(比如商品或用户),确认能正常读写MySQL,就说明配置成功了。
额外注意点
- 确保MySQL服务已经启动,并且你的用户名/密码有操作目标数据库的权限。
- MySQL 8.x版本必须使用
com.mysql.cj.jdbc.Driver,并且JDBC URI里要加上时区参数(比如&serverTimezone=UTC),否则可能会报错。 - 如果启动OFBiz时提示找不到驱动类,检查一下JAR文件是否放对了路径,或者驱动版本和MySQL版本是否兼容。
内容的提问来源于stack exchange,提问作者Alket Shabani
相关产品推荐
相关产品推荐

