在Magnolia中:用MySQL替换H2:JackRabbit无法实例化持久性管理器

时间:2019-06-13 10:09:02

标签: mysql jackrabbit magnolia

我想用MySQL而不是嵌入式H2设置Magnolia。

我遵循了Magnolia and JackRabbit Wiki:https://wiki.magnolia-cms.com/display/WIKI/Setting+up+a+Jackrabbit+persistence+manager,并进行了4项必要的更改:

  1. 我安装了MySQL,并创建了一个Magnolia数据库和一个有权访问它的用户:

      创建数据库magnl_author;
      创建数据库magnl_public;
      创建用户'mgnl_admin'@'localhost'由'超级用户'标识;
      将所有特权授予magnl_author。*至'mgnl_admin'@'localhost';
      将所有特权授予magnl_public。*至'mgnl_admin'@'localhost';

  2. 我在 magnolia.properties中设置了 magnolia.repositories.jackrabbit.config = WEB-INF / config / repo-conf / jackrabbit-bundle-mysql-search.xml .xml

  3. 我将 mysql-connector-java-8.0.16.jar 添加到 webapps \ magnoliaAuthor \ WEB-INF \ lib 中,并删除了 derby- 10.14.1.0.jar

  4. 我配置了 jackrabbit-bundle-mysql-search.xml ,可以在https://drive.google.com/file/d/13QImOipAUwZd0bOTFi_kZloIG549URpk/view?usp=sharing中看到它,因此将PM(持久性管理器)配置为用于版本控制和工作区。

但是,当我启动Tomcat时,仍然出现以下错误: 错误org.apache.jackrabbit.core.RepositoryImpl:无法启动存储库:无法实例化持久性管理器org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager

1 个答案:

答案 0 :(得分:0)

根据您的堆栈跟踪,您的问题似乎与TimeZone有关。我建议暂时将其设置为UTC,看看是否有帮助。

为此,请在下面的行中附加您的配置:

&serverTimezone=UTC

例如

  <param name="url" value="jdbc:mysql://localhost:3306/magnolia" />

成为

  <param name="url" value="jdbc:mysql://localhost:3306/magnolia?serverTimezone=UTC" />

希望有帮助,

干杯