2015-10-13 13 views
1

我開始使用Derby Network Server,如本教程中所述 - hereDerby客戶機jdbc驅動程序連接錯誤:無法創建數據庫'樣本'

但是,當我輸入:

ij> connect 'jdbc:derby://localhost:1527/sample;create=true', 

我得到以下錯誤:

ERROR XJ041: DERBY SQL error: ERRORCODE: 40000, SQLSTATE: XJ041, SQLERRMC: Faile d to create database 'sample', see the next exception for details.::SQLSTATE: XB M0H

任何想法如何解決這一問題?

derby.log內容:

Tue Oct 13 10:56:03 EEST 2015 : Apache Derby Network Server - 10.11.1.2 - (1629631) started and ready to accept connections on port 1527 
Tue Oct 13 10:56:10 EEST 2015 Thread[DRDAConnThread_2,5,main] Cleanup action starting 
ERROR XBM0H: Directory C:\Program Files\Java\jdk1.8.0_45\db\bin\sample cannot be created. 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source) 
at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source) 
at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source) 
at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source) 
at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source) 
at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) 
Cleanup action completed 
Tue Oct 13 10:56:10 EEST 2015 Thread[DRDAConnThread_2,5,main] Cleanup action starting 
java.sql.SQLException: Failed to create database 'sample', see the next exception for details. 
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) 
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) 
at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source) 
at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) 
Caused by: ERROR XJ041: Failed to create database 'sample', see the next exception for details. 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source) 
... 16 more 
Caused by: ERROR XBM0H: Directory C:\Program Files\Java\jdk1.8.0_45\db\bin\sample cannot be created. 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source) 
at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source) 
at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source) 
at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source) 
at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source) 
... 13 more 
============= begin nested exception, level (1) =========== 
java.sql.SQLException: Directory C:\Program Files\Java\jdk1.8.0_45\db\bin\sample cannot be created. 
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) 
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) 
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) 
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source) 
at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) 
Caused by: ERROR XBM0H: Directory C:\Program Files\Java\jdk1.8.0_45\db\bin\sample cannot be created. 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source) 
at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source) 
at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source) 
at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source) 
at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source) 
... 13 more 
============= end nested exception, level (1) =========== 
============= begin nested exception, level (2) =========== 
ERROR XBM0H: Directory C:\Program Files\Java\jdk1.8.0_45\db\bin\sample cannot be created. 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 
at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source) 
at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source) 
at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source) 
at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source) 
at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown Source) 
at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) 
at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source) 
at org.apache.derby.impl.drda.Database.makeConnection(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.getConnFromDatabaseName(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.verifyUserIdPassword(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.parseSECCHK(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.parseDRDAConnection(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) 
at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) 
============= end nested exception, level (2) =========== 
Cleanup action completed 
Tue Oct 13 10:56:10 EEST 2015 Thread[DRDAConnThread_2,5,main] (DATABASE = sample), (DRDAID = {1}), Failed to create database 'sample', see the next exception for details. 
Tue Oct 13 10:56:10 EEST 2015 Thread[DRDAConnThread_2,5,main] (DATABASE = sample), (DRDAID = {1}), Directory C:\Program Files\Java\jdk1.8.0_45\db\bin\sample cannot be created. 
+0

你能找到你的Derby Network Server創建的'derby.log'文件嗎?查看該日誌,您會發現Derby Network Server在嘗試創建數據庫時遇到的完全例外情況。在這裏將該日誌輸出複製到您的問題中。 –

回答

2

日誌條目狀態:

Directory C:\Program Files\Java\jdk1.8.0_45\db\bin\sample cannot be created

所以據我知道這可能是一些權限問題與network server過程不必在創建一個目錄足夠的權限C:\Program Files\Java\jdk1.8.0_45\db\bin\。您可以嘗試以管理員身份運行它。

+0

謝謝,它現在可行! – user3719857

1

從您的異常堆棧跟蹤看起來,您的Derby網絡服務器進程在文件夾C:\Program Files\Java\jdk1.8.0_45\db\bin\中啓動,並且該進程似乎沒有在該文件夾中寫入(Derby數據庫)文件的權限。嘗試找到Derby服務器進程有權將文件寫入的文件夾。您可以在Derby連接URL中指定Windows驅動器號和路徑。只要確保將任何反斜槓\轉換爲正斜槓/或者像這樣轉義它們\\。所以,如果,例如,如果你知道德比服務器進程可以寫入到d:\ temp文件夾,那麼你可以撰寫你的命令

ij> connect jdbc:derby://localhost:1527/d:/temp/sample;create=true

ij> connect jdbc:derby://localhost:1527/d:\\temp\\sample;create=true

0

謹防取代驅動器時使用Derby - 如果將數據庫放在替代驅動器上,它將無法工作,並且會在日誌中混淆nio異常和類轉換錯誤。因此這並沒有工作

connect 'jdbc:derby://localhost:1527/t:/DerbyDB;create=true'; 

其中T是取代。在驅動器C指出同樣的命令做的工作:

connect 'jdbc:derby://localhost:1527/c:/DerbyDB;create=true'; 

還有就是在德比現場,這些問題的討論 - 但也許它不是固定的所有情況?包括數據庫本身在替代驅動器上的位置。我目前正在使用版本10.10.2.0

相關問題