RHEL7 VMware12
本地搭建的虚拟机,2核,8G
neo4j-community-4.0.4-unix.tar.gz
jdk-11.0.7_linux-x64_bin.tar.gz (neo4j基于java)
Xftp6
Xsehll6
为了方便操作,我们先关闭防火墙 : systemctl disable firewalld
查看防火墙状态
systemctl status firewalld
关闭防火墙(重启后维持原状态)
systemctl stop firewalld
禁用防火墙(永久关闭)
systemctl disable firewalld
启用防火墙
systemctl enable firewalld
下载NEO4J 社区版 linux版本
或者直接 在服务器上下载
curl -O http://dist.neo4j.org/neo4j-community-4.0.4-unix.tar.gz
tar -axvf neo4j-community-4.0.4-unix.tar.gz
或者
tar zxvf neo4j-community-4.0.4-unix.tar.gz
在neo4j安装目录下找到conf文件夹下的neo4j.conf文件
vim neo4j.conf
修改相应配置如下:
修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import
修改35行和36行,设置JVM初始堆内存和JVM最大堆内存。生产环境给的JVM最大堆内存越大越好,但是要小于机器的物理内存
dbms.memory.heap.initial_size=1g
dbms.memory.heap.max_size=2g
修改46行,可以认为这个是缓存,如果机器配置高,这个越大越好
dbms.memory.pagecache.size=4g
修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0
默认 bolt端口是7687,http端口是7474,https关口是7473,不修改下面3项也可以
修改75行,去掉#,设置bolt端口为7687,端口可以自定义,只要不和其他端口冲突就行
#dbms.connector.bolt.listen_address=:7687
修改79行,去掉#,设置http端口为7474,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.http.listen_address=:7474
修改83行,去掉#,设置http端口为7473,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.https.listen_address=:7473
修改208行,去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true
修改246行,允许使用neo4j-shell,类似于mysql 命令行之类的 neo4j 4.0.4没有这一项
dbms.shell.enabled=true
修改235行,去掉#,设置连接neo4j-shell的端口,一般都是localhost或者127.0.0.1,这样安全,其他地址的话,一般使用https就行 neo4j 4.0.4没有这一项
dbms.shell.host=127.0.0.1
修改250行,去掉#,设置neo4j-shell端口,端口可以自定义,只要不和其他端口冲突就行 neo4j 4.0.4没有这一项
dbms.shell.port=1337
修改254行,设置neo4j可读可写
dbms.read_only=false
浏览器 服务器IP地址:7474
新版本的变动
这里我们是用的Neo4j 4.0.4,所以当我们用neo4j/neo4j去登陆时候,碰到了这样一个错误:Connect Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authentication failure
根据官方的解释,是因为在4以上的版本,他们改变了更改密码的方法,neo4j/neo4j是无法登陆的,需要到服务器上去修改配置之后,用cypher在neo4j的浏览器上去改或者在cypher-shell里面去改。
相关链接
新版本的修改密码的方法
官方修改密码方法的链接
按照官方的步骤,我先停止了neo4j
然后,解开了neo4j.conf里面的dbms.security.auth_enabled=false的注释
而后,重新启动了neo4j
通过neo4j/neo4j登陆上了system,然后去修改neo4j的密码
神奇的是,虽然上面显示的是unsupported administration command,但是这时,我用"password"这个密码在本地浏览器登陆,显示登陆成功。密码就是我当时设置的"password"。
本来以为大功告成。。。
这时,我再次关闭
neo4j stop
vi neo4j.conf, 再次将dbms.security.auth_enabled=false这一行注释掉
neo4j start
网页登陆,发现又登不上了。
wtf?
于是,再次使用neo4j 登陆 system,这时在输入密码neo4j登陆之后,要求我修改密码了:
再次刷新本地浏览器上的登陆页面,输入neo4j/password
显示登陆成功。
./neo4j stop
参考链接:https://blog.csdn.net/u013946356/article/details/81736232
一下是后面安装neo4j-enterprise-4.0.7的时候的情况:
取消了neo4j.conf里面的dbms.security.auth_enabled=false的注释
restart之后发现登陆不上去
[root@bigdata111 bin]# neo4j console查看启动日志
发现是之前安装的community版本占用了端口
列出端口占用
lsof -i
java 7477 root 239u IPv6 81139 0t0 TCP *:7687 (LISTEN)
java 7477 root 240u IPv6 81178 0t0 TCP *:neo4j (LISTEN)
或者直接lsof -i 7687
kill 进程重新启动
[root@bigdata111 bin]# kill -9 7477
[root@bigdata111 bin]# neo4j start
重置password
alter user neo4j set password ‘password’;
[root@bigdata111 bin]# neo4j -u neo4j -d system
Usage: neo4j { console | start | stop | restart | status | version }
[root@bigdata111 bin]# cypher-shell -u neo4j -d system
password: *****
Connected to Neo4j 4.0.7 at neo4j://localhost:7687 as user neo4j.
Type :help for a list of available commands or :exit to exit the shell.
Note that Cypher queries must end with a semicolon.
neo4j@system>
neo4j@system> alter user neo4j set password 'password';
0 rows available after 868 ms, consumed after another 0 ms
退出
:exit
grant admin to neo4j;
:LTER USER neo4j SET PASSWORD ‘password’;
:help
:system
:sever connect
init server connect