OrientDB 2.2.34启动报错:无法加载java.util.logging.FileHandler权限问题
搞定OrientDB启动的日志权限报错问题
嘿,刚接触图数据库就碰到这种权限小坑确实闹心,我来帮你一步步解决这个问题~
你遇到的java.nio.file.AccessDeniedException: ..\log\orient-server.log.0.lck错误,核心就是Java进程没权限读写OrientDB的日志目录,或者锁文件被其他进程占了。按下面的优先级试试:
1. 先排查进程占用问题
有时候之前启动的OrientDB没彻底关掉,导致锁文件被死死占着:
- 按
Ctrl+Shift+Esc打开任务管理器,找到所有带java.exe或javaw.exe的进程,把和OrientDB相关的都结束掉 - 手动找到OrientDB安装目录下的
log文件夹,删掉里面所有.lck后缀的锁文件 - 再重新双击运行
server.bat试试
2. 用管理员权限启动server.bat
Windows下很多权限问题都是因为没拿到管理员权限:
- 找到
server.bat文件,右键选以管理员身份运行 - 这时候Java进程会获得更高的系统权限,大概率能正常创建和读写日志锁文件了
3. 修改OrientDB目录的权限
如果管理员运行还是不行,可能是整个OrientDB安装目录的权限设置有问题:
- 找到OrientDB的安装根目录,右键点属性 → 切换到安全标签页
- 点击编辑,找到你当前登录的Windows用户账号,给它勾选完全控制的权限
- 点应用和确定,然后重启
server.bat
4. 调整日志配置(进阶操作)
要是上面的方法都没效果,可以试试改日志配置绕开这个问题:
- 打开OrientDB安装目录下的
config\log.properties文件 - 找到这一行:
handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler - 可以暂时注释掉
java.util.logging.FileHandler(前面加#),变成:#java.util.logging.FileHandler, java.util.logging.ConsoleHandler,这样就只会输出控制台日志,不会创建日志锁文件,先确保OrientDB能启动 - 或者修改
java.util.logging.FileHandler.pattern的值,指定一个你肯定有权限的目录,比如C:\temp\orient-server.log
另外提个小建议:OrientDB 2.2.34是比较老的版本了,它原本是适配Java 8的,和你用的Java 10可能存在一些兼容性小问题。如果上面的方法都解决不了,试试降级到Java 8,说不定能少踩很多奇怪的坑~
内容的提问来源于stack exchange,提问作者talorigomat
相关产品推荐
相关产品推荐

