问题描述:
本地电脑上装的是neo4j社区版3.4.7,对方数据库为3.5.5,使用neo4j-admin load命令导入导出数据库,导出数据库没有问题,导入数据库的时候出现下图所示问题。
寻找问题根源
一开始以为是文件名的问题,于是让对方导出的时候命名为graph20200702.dump,但还是不行。
接下来排除本地数据库是否有什么问题,于是在本地数据库-关闭-导出dump文件-删除%NEO4J_HOME%data/databases/graph.db-启动数据库-关闭数据库-导入dump文件,发现导入成功,于是确定本地数据库没有问题,应该是不同版本的数据库之间文件格式不兼容问题。
-----------------------------这里是一些说明----------------------------------------------------------------
ps:导入导出数据库均需要先关闭neo4j,上述删除graph.db文件是为了清空数据库,再次启动之后,neo4j会默认创建graph.db(在neo4j.conf中可以改默认启动库)
-------------------------------------------------------------------------------------------------------------------
解决问题
确定是版本导致的问题之后,使用与对方相同的版本就可以了,于是在CSDN上下载了3.5.5版本。
ps:官网下载太太太慢了。
pps:此处感谢我的研究生同学李靖帮我下载。
下载好之后,直接解压到3.4版本数据库的同级目录(便于修改环境变量),解压完毕,进入正题。
1.首先要切换数据库,不能再使用3.4版本了。
1.1修改环境变量
把NEO4J_HOME的值改成3.5版本的安装目录。
1.2修改配置文件conf/neo4j.conf
参照3.4版本的配置文件进行修改,无非是去掉几个‘#’,感兴趣的同学可以在网上搜neo4j配置文件详解,这里就不再过多解释。
要注意的一点是我将3.5版本的neo4j的访问端口设置为7475,和3.4版本相区分。
2.启动3.5版本数据库 出现的问题
由于我已经修改了环境变量,于是直接cmd打开命令行,执行neo4j start命令,在浏览器访问localhost:7475,然后成功的报错!
然后把端口改为7474,访问成功,心里很疑惑,遂查看数据库信息
再上图的版本号位置上,赫然显示3.4.7,惊呆了!于是将3.4版本的conf文件的端口注掉,关闭-重启再来一次!还是不行!
我陷入了深深的思考....
我明明已经启动的是3.5版本了啊,环境变量已经改了啊,问题出在哪里呢?
于是进入3.5版本的bin目录,在目录下打开命令行窗口,执行neo4j.bat consle(neo4j console/start都可以启动neo4j,不过console会输出启动信息,并且不可以关闭服务窗口)
发现端口确实是7475,遂打开浏览器localhost:7475,成功的进去了。。。
到现在我也不明白,为啥start console 不一样...若能在评论区告知,不胜感激!!!!
问题已经解决了,虽然我也不知道怎么解决的,不过是不影响使用了,可能这就是程序员吧...
3.dump文件导入
至此,数据库就导入成功了。