I'm attempting to copy a graph.db I created in the Community Edition on AWS AMI to my local Linux PC.
On the AWS AMI I have managed to dump the database and copy it to my local Linux PC
On AWS AMI I did the following
ssh connect to instance
need to login as root to manage neo4j so need to setup a password
set a pwd by - passwd root
add neo4j as root user - usermod -aG sudo neo4j
login as neo4j - su neo4j
go to home - cd ~
can now run dump/backup command - neo4j-admin dump --database=graph.db --to=backups/trove20190803
remove root passwd -
from local Linux PC then used scp to copy the dump/backup locally
My problem is how to load this dump/backup into a local Neo4j Desktop
I have successfully loaded it into local neo4j using command - neo4j-admin load --from=trove20190803 --database=trove20190803.db and can access this from a browser
I have installed neo4j and 'Neo4j Desktop' on this linux PC, using the neo4j to do the tutorial and have used the 'Neo4j Desktop' to connect to the AWS AMI neo4j instance
I note in the manual that it says 'file locations for a database installed via Neo4j Desktop will be different from those described here'
I'm thinking my problem is which directory I am in matters which config file it uses
So to test this I created a new project in Neo4j Desktop and opened the browser to create an empty graph.db.
I then opened the terminal window from Neo4j Desktop for this instance and checked that I could run a neo4j-admin check-consistency and did a neo4j-admin dump which all appear to have worked.
Next step was to do a neo4j-admin load of the dump/backup from the AWS AMI and it did not give any errors
Started the database running, connected with the browser but a call db.schema.verification only returns an empty schema as if it was the empty database
Some pointers as to what I should do would be appreciated
The neo4j-admin load method to Neo4j Desktop should work just fine. If you got an empty schema upon restarting, probably you loaded the data to the wrong directory and it just didn't get picked up by Desktop.
What I'd recommend is to use the "Terminal" inside of Neo4j desktop so that you're starting in the right directory, and do your commands relative to that.
A key thing to remember is that by default your database is going to reside in the data/databases/graph.db folder. If that folder doesn't exist or is empty after you to the restore, then you'll see no data in Neo4j Desktop. So make sure that your import command is resulting in that directory with files in it, and not a directory by another name, or the right direction in the wrong place.
Also, make sure that your Neo4j Desktop instance is STOPPED when you do this.
Yes that is exactly what I did.
On further investigation I can see that the neo4j-admin command has used the /etc/neo4j/neo4j.conf file and not the ~/.config/Neo4j Desktop/Application/neo4jDatabases/database-6690be23-20a2-479a-af16-bca37deaf9cd/installation-3.5.5/conf/neo4j.conf
So echo $NEO4J_HOME
is set correctly
Is not set - if I set this to the same as NEO4J_HOME will everything work?
I don't think
$NEO4J_CONF needs to be set. If neo4j-admin is inappropriately reading the wrong version of neo4j.conf, then I'd recommend trying to set NEO4J_HOME, and then (temporarily) move the wrong copy out of the way to a different filename so the tool can't pick it up. After you do the admin commands you want, you can move it back in place.
As you can see from my previous post NEO4J_HOME is set correctly when using the terminal in NEO4J Desktop.
I renamed the /etc/neo4j/neo4j.conf
and ran the neo4j-admin tool in the terminal window in NEO4J Desktop with the following error
~/.config/Neo4j Desktop/Application/neo4jDatabases/database-6690be23-20a2-479a-af16-bca37deaf9cd/installation-3.5.5/data$ sudo neo4j-admin load --from=dbbackups/trove20190803 --database=graph.db --force=true
[sudo] password for pmm57:
WARNING: Max 8192 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
Error: Could not find or load main class org.neo4j.commandline.admin.AdminTool
OK to close this off I realised that I didn't need to load my database into the desktop space, I could just point the desktop to the running local version that I mentioned in the first post and bingo all working as I wanted