You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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)
  • 把下载好的JAR文件直接放到OFBiz的framework/entity/lib/目录下——这是16.11.04版本存放JDBC驱动的默认路径,OFBiz启动时会自动加载这里的JAR,不用手动配置类路径。

第二步:修改数据库连接配置

找到OFBiz的核心配置文件framework/entity/config/entityengine.xml,做以下修改:

  1. 替换数据源配置:找到原来的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&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true"
                jdbc-username="你的MySQL用户名"
                jdbc-password="你的MySQL密码"
                isolation-level="ReadCommitted"
                pool-minsize="2"
                pool-maxsize="20"
                time-between-eviction-runs-millis="600000"/>
    </datasource>
    
  2. 切换默认数据源:找到文件里的<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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:43:55