neo4j使用中的常见问题

1Spring Boot NEO

The client is unauthorized due to authentication failure

解决方法:找到你安装neo4j的路径下的conf文件夹,找到neo4j.conf

#dbms.security.auth_enabled=false

将前面的注释#去掉,然后重启neo4j,在重启项目即可。
neo4j使用中的常见问题_第1张图片

Spring Data NEO日志无法打印cyper日志

我定义了如下一个根据userName打印的方法,但是SDN会为我生成什么样子的cypher语句

@Repository
public interface UserRepository extends Neo4jRepository<UserNode, Long> {
	
    List<UserNode> findByUserName(String userName);
}

关于无法打印日志,楼主反正也是一顿找,一开始百度,发现百度找不到NEO打印日志的内容,后来去GPT,发现GPT说的一点用没有(3.5GPT的数据截止于2021年,2021的网上关于SDN的数据,可能不太好吧),后来上stackoverflow也是查看了很多,也没找到我想要的答案,也可能是因为SDN的版本太多,各版本之间的差异吧。

首先,把根目录日志设置为debug,这时候日志很多,不用管,然后启动项目以后(这个生产环境是一定禁止的,这种行为不可以上生产,这里把root设置为debug,这是为了我们解决问题,后续这个得删除),进行查询以后,可以发现SDN给我们生成的cypher。

logging:
  level: 
    root: DEBUG

在这里插入图片描述
以下是我们通过观察日志得出的,SDN的PartTreeNeo4jQuery记录执行方法,BoltRequest记录了执行的cypher

//这个类打印了我们具体执行的是哪一个cypher接口,方便我们直接定位我们执行的是哪个方法
o.s.d.n.r.query.PartTreeNeo4jQuery(简写)
org.springframework.data.neo4j.repository.query.PartTreeNeo4jQuery(完整路径)

//这个类则直接打印了,我们执行的具体的cypher语句
o.n.o.drivers.bolt.request.BoltRequest(简写)
org.neo4j.ogm.drivers.bolt.request.BoltRequest(完整路径)

现在我们将这两个类配置到yml,日志等级设置为debug,并且将之前的logging.level.root注释掉。需要注意的是,请不要无脑照抄下面的配置,而且通过我们上面的方法,找到是NEO中的哪个类在打印日志,然后将打印日志的那个类设置为debug。

logging:
  level: 
    #root: DEBUG
    org.springframework.data.neo4j.repository.query.PartTreeNeo4jQuery: DEBUG
    org.neo4j.ogm.drivers.bolt.request.BoltRequest: DEBUG

如果你使用的不是SpringBoot的默认日志,例如下面这样。使用logback或者log4j2这些框架,那么你需要将日志配置xml中

logging:
  config: classpath:logback-spring.xml
<logger name="org.springframework.data.neo4j.repository.query.PartTreeNeo4jQuery" level="DEBUG"/>
<logger name="org.neo4j.ogm.drivers.bolt.request.BoltRequest" level="DEBUG"/>

最终实现效果如下
在这里插入图片描述

Cypher

你可能感兴趣的:(图数据库neo4j,neo4j)