如何将neo4j从2.1.8升级到2.3.1

时间:2016-01-18 05:08:43

标签: ubuntu neo4j

我的ubuntu ami上安装了neo4j 2.1.8。这个版本的neo4j的问题在于它没有身份验证功能,并且某些查询(如DETACH)无法在此版本上运行。所以我决定升级我的neo4j但失败了。我遵循的步骤是:

  1. 停止正在运行的neo4j
  2. wget http://neo4j.com/artifact.php?name=neo4j-community-2.3.1-unix.tar.gz
  3. tar -xf artifact.php \?name \ = neo4j-community-2.3.1-unix.tar.gz
  4. cd neo4j-community-2.3.1 /
  5. sudo vim conf / neo4j.properties并设置Neo4j配置参数allow_store_upgrade = true
  6. sudo vim conf / neo4j-server.properties并将数据库路径更改为旧数据库。
  7. cd ../ bin
  8. ./ neo4j start
  9. 但不幸的是我遇到了以下错误

    Component 'org.neo4j.server.database.LifecycleManagingDatabase@13401e7' was successfully initialized, but failed to start. Please see attached cause exception.
        at org.neo4j.server.exception.ServerStartupErrors.translateToServerStartupError(ServerStartupErrors.java:67)
        at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:234)
        at org.neo4j.server.Bootstrapper.start(Bootstrapper.java:97)
        at org.neo4j.server.CommunityBootstrapper.start(CommunityBootstrapper.java:48)
        at org.neo4j.server.CommunityBootstrapper.main(CommunityBootstrapper.java:35)
    
    Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.server.database.LifecycleManagingDatabase@13401e7' was successfully initialized, but failed to start. Please see attached cause exception.
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:462)
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:111)
        at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:194)
        ... 3 more
    
    Caused by: java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.CommunityFacadeFactory, /data-dir2/graph.db
        at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:143)
        at org.neo4j.kernel.impl.factory.CommunityFacadeFactory.newFacade(CommunityFacadeFactory.java:43)
        at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:108)
        at org.neo4j.server.CommunityNeoServer$1.newGraphDatabase(CommunityNeoServer.java:66)
        at org.neo4j.server.database.LifecycleManagingDatabase.start(LifecycleManagingDatabase.java:95)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:452)
        ... 5 more
    
    Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.NeoStoreDataSource@74c6dcaa' was successfully initialized, but failed to start. Please see attached cause exception.
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:462)
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:111)
        at org.neo4j.kernel.impl.transaction.state.DataSourceManager.start(DataSourceManager.java:112)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:452)
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:111)
        at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:139)
        ... 10 more
    
    Caused by: org.neo4j.kernel.impl.storemigration.StoreUpgrader$UnexpectedUpgradingStoreVersionException: '/data-dir2/graph.db/neostore.nodestore.db' has a store version number that we cannot upgrade from. Expected 'v0.A.3' but file is version ''.
        at org.neo4j.kernel.impl.storemigration.UpgradableDatabase.checkUpgradeable(UpgradableDatabase.java:96)
        at org.neo4j.kernel.impl.storemigration.StoreUpgrader.migrateIfNeeded(StoreUpgrader.java:149)
        at org.neo4j.kernel.NeoStoreDataSource.upgradeStore(NeoStoreDataSource.java:636)
        at org.neo4j.kernel.NeoStoreDataSource.start(NeoStoreDataSource.java:527)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:452)
    

    如果验证也可以在此版本(2.1.8)中完成,那么告诉进程,我不必更新我的数据库。

2 个答案:

答案 0 :(得分:2)

我想我记得必须从2.1.x升级到2.2.x再升级到2.3.x. 2.1.x-> 2.3.x的直接升级路径不存在。

基本上,我在最新的2.2.x上设置allow_store_upgrade=true,通过启动服务器升级数据库,关闭,将升级后的数据库复制到2.3.x并重复该过程。

编辑:手册确实表明存在2.1.x的直接升级路径 - > 2.3.x(http://neo4j.com/docs/stable/deployment-upgrading.html#explicit-upgrade)但这对我不起作用。

答案 1 :(得分:0)

我也尝试从2.1.8升级到2.2.8但它也失败了。在Windows 2.1.8升级到2.3.2的工作完美。所以我从安装了neo4j 2.1.8的ubuntu服务器下载数据文件夹(通常是graph.db),然后用它替换windows neo4j(2.1.8)的数据文件夹。然后在成功升级后将其升级到2.3.2,制作一个zip文件夹并将其上传到我的ubuntu服务器。之后我在我的ubuntu服务器上安装了neo4j 2.3.2并编辑neo4j-server.properties来更改数据库路径。