我已经黔驴技穷了!
- 我有 Ubuntu Server 18.04 和 OpenJDK 11(无头)的最小安装。
- 下载到本地文件夹的是 Derby 的 java 9+ 二进制文件 (db-derby-10.15.2.0-bin)
路径和环境设置都是正确的!
启动服务器时,使用命令行工具startNetworkServer -h 0.0.0.0
进行简单连接时出现错误ij
ij> connect 'jdbc:derby://localhost:1527/dbname;create=true';
ERROR XJ041: DERBY SQL error: ERRORCODE: 40000, SQLSTATE: XJ041, SQLERRMC: Failed to create database 'dbname', see the next exception for details.::SQLSTATE: XBM01::SQLSTATE: XJ001
derby.log 文件引用了:
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.SOURCE_DATE_EPOCH")
进一步研究这个错误,我了解到我需要一个 security.profile。我发现这个网站似乎可以解决我的问题。https://www.javacodegeeks.com/2020/04/apache-derby-database-jvm-security-policy.html
按照这些非常直接的说明,我得到:
java.security.AccessControlException: access denied
org.apache.derby.shared.common.security.SystemPermission( "engine", "usederbyinternals" )