2015-06-21 110 views
0

我已經在Linux Mint機器上安裝了gerrit,並且正在嘗試使用mysql數據庫連接進行HTTP身份驗證。 但是當我嘗試啓動格里特,我得到以下錯誤:Gerrit JDBC驅動程序找不到

ERROR com.google.gerrit.pgm.Daemon : Unable to start daemon 
com.google.gerrit.common.Die: Cannot connect to SQL database 
at com.google.gerrit.pgm.util.AbstractProgram.die(AbstractProgram.java:88) 
at com.google.gerrit.pgm.util.SiteProgram.createDbInjector(SiteProgram.java:158) 
at com.google.gerrit.pgm.Daemon.start(Daemon.java:275) 
at com.google.gerrit.pgm.Daemon.run(Daemon.java:204) 
at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:64) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:166) 
at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:93) 
at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:50) 
at Main.main(Main.java:25) 
Caused by: java.sql.SQLException: Driver class com.mysql.jdbc.Driver not available 
at com.google.gwtorm.jdbc.SimpleDataSource.loadDriver(SimpleDataSource.java:171) 
at com.google.gwtorm.jdbc.SimpleDataSource.<init>(SimpleDataSource.java:85) 
at com.google.gerrit.server.schema.DataSourceProvider.open(DataSourceProvider.java:144) 
at com.google.gerrit.server.schema.DataSourceProvider.get(DataSourceProvider.java:65) 
at com.google.gerrit.pgm.util.SiteLibraryBasedDataSourceProvider.get(SiteLibraryBasedDataSourceProvider.java:52) 
at com.google.gerrit.pgm.util.SiteLibraryBasedDataSourceProvider.get(SiteLibraryBasedDataSourceProvider.java:32) 
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86) 
at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:73) 
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:66) 
at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:63) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1066) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
at com.google.inject.Scopes$1$1.get(Scopes.java:65) 
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) 
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205) 
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1059) 
at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199) 
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180) 
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110) 
at com.google.inject.Guice.createInjector(Guice.java:96) 
at com.google.gerrit.pgm.util.SiteProgram.createDbInjector(SiteProgram.java:152) 
... 11 more 
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:348) 
at com.google.gwtorm.jdbc.SimpleDataSource.loadDriver(SimpleDataSource.java:168) 
... 33 more 

我複製mysql-connector-java-5.1.28.jar/usr/share/java但儘管如此,仍然出現錯誤。

有人能指點我嗎?

+0

屬於Gerrit'lib /'文件夾的Iirc,不是嗎? – StephenKing

+0

'lib /'文件夾是什麼意思?一般庫或其他類型的lib文件夾? – Arkde

+1

Gerrit的其中一個 – StephenKing

回答

1

最好離開/usr/share/java不變。當你下次升級時,你放在那裏的任何東西都會丟失。相反,爲你的司機定義你自己的公共位置。如果它只是爲你,你的家的位置的子目錄可能是好的:mkdir ~/jdbc

然後將您的.jar文件複製到該位置的jdbc驅動程序。

然後根據你如何運行你的java代碼,你將不得不弄清楚如何將jar包括到你的類路徑中。

  1. 獨立Java程序開始使用命令行java,然後使用-cp參數選項。
  2. 像Tomcat或Weblogic這樣的應用服務器可以參考他們的文檔。請注意,許多人建議應用程序服務器安裝內的放置位置,但出於與/usr/share/java相同的原因,我建議不要這樣做。實際上tomcat允許你從CATALINA_BASE中分離出CATALINA_HOME來解決這個問題。

無論哪種方式,它似乎是從簡單main,而不是一個Web應用程序生成的異常,所以我認爲你可以去第一個選項。

+0

保持'/ usr/share/java'不變的好處。但是,在哪裏/或者我應該如何安裝mysql庫,以便'gerrit'能夠連接到mysql數據庫? – Arkde

相關問題