2014-10-01 58 views
1

我在運行Ubuntu 14.04的公司雲服務器上全新安裝Neo4j 2.1.4開源代碼。我正在將CSV文件導入數據庫。我的文件的路徑爲 '/home/username/data-neo4j/node.csv'在Cypher + Neo4j中加載CSV失敗「LoadExternalResourceException:無法加載外部資源:」

下面是我的命令,這是我從Neo4j的命令行工具的Neo4j-shell中運行:

LOAD CSV WITH HEADERS FROM "file:///home/username/data-neo4j/node.csv" AS line CREATE (:Node { nid: toInt(line.nid), title: line.title, type: line.type, url: line.url});

這將返回:

LoadExternalResourceException: Couldn't load the external resource at: file:/home/user/data-neo4j/node.csv

這看起來像一個消息說,它不能找到該文件。但是,該文件已到位。我甚至嘗試將文件上的權限更改爲755.

我在本地計算機上安裝了Neo4j的單獨實例(帶有Neo4j 2.1.2 Enterprise的OSX)。該命令在我的本地機器上成功,因爲我切換路徑進行匹配。

我注意到當我運行neo4j-shell時,有一件事我得到了NOTE: Remote Neo4j graph database service 'shell' at port 1337。我打開了這個端口,我的命令仍然返回相同的錯誤信息。

我也通讀這個鏈接 - 但他們的問題是他們沒有上傳他們的文件。我的檔案已到位。

neo4j LOAD CSV returns Couldn't Load external resource

回答

3

sheldonkreger,你的同事是正確的。感謝他。就像他/她建議的那樣,例如/ var/log/neo4j或者/ var/lib/neo4j或者/ var/log4/Neo4j的。

相反,只需轉到上面提到的neo4j目錄,並查看那裏的文件權限,併爲您的csv文件或您嘗試導入的任何文件提供相同的權限。

例如,對於我的系統中的Neo4j文件夾中的文件權限是這樣的:

ls -la 
total 208 
drwxr-xr-x 4 neo4j adm 4096 Feb 4 10:35 . 
drwxr-xr-x 87 root root 4096 Feb 11 22:21 .. 
drwxr-xr-x 3 neo4j adm 4096 Feb 4 10:35 bin 
-rw-r--r-- 1 neo4j adm 61164 Jan 29 22:32 CHANGES.txt 
lrwxrwxrwx 1 neo4j adm  10 Sep 30 12:07 conf -> /etc/neo4j 
drwxr-xr-x 4 neo4j adm 4096 Mar 13 13:25 data 
lrwxrwxrwx 1 neo4j adm  20 Sep 30 12:07 lib -> /usr/share/neo4j/lib 
-rw-r--r-- 1 neo4j adm 125517 Jan 29 22:32 LICENSES.txt 
lrwxrwxrwx 1 neo4j adm  24 Sep 30 12:07 plugins -> /usr/share/neo4j/plugins 
-rw-r--r-- 1 neo4j adm 1568 Jan 29 22:32 README.txt 
lrwxrwxrwx 1 neo4j adm  23 Sep 30 12:07 system -> /usr/share/neo4j/system 
-rw-r--r-- 1 neo4j adm 4018 Jan 29 22:30 UPGRADE.txt 

所以我做同樣的我的文件,Neo4j的是能夠成功地運行導入命令。

我這樣做:

sudo chown neo4j:adm <csv file location> 
+0

感謝..它的工作.. – proprius 2016-03-18 06:06:22

+0

@proprius好知道它爲你工作:) – Vishal 2016-03-19 08:27:33

2

一位同事幫我調試此。

問題是一個許可。在Linux中,neo4j擁有自己的用戶'neo4j'。該用戶無權訪問/home/myuser/data-neo4j/node.csv上的數據

我們將數據移至neo4j用戶擁有權限並在查詢中調整路徑的文件夾。

對於未來的參考,日誌Neo4j的可以提供額外的信息,在一個Linux的,是位於/ var/log /找到的Neo4j