Fehler "no sqljdbc_auth in java.library.path" bei der Installation von TeamCity unter Windows Server 2012

9

Ich installiere TeamCity auf einem Windows 2012 Server. Ich bin auf dem Setupbildschirm der Datenbankverbindung, erhalte aber diesen Fehler.

  

"SQL-Fehler beim Ausführen: Verbindung von der Datenquelle: no sqljdbc_auth in java.library.path"

Ich habe sqljdbc_auth.dll in den Ordner C:\Windows\System32 kopiert und eine Systemumgebungsvariable java.library.path hinzugefügt, die auf diesen Ordner verweist.

    
DomBurf 27.07.2015, 08:34
quelle

6 Antworten

9

Teamcity installiert die 32-Bit-Version auch dann, wenn Sie auf einer 64-Bit-Plattform arbeiten, es sei denn, Sie verwenden absichtlich 64-Bit. Ich werde Ihnen also die 32-Bit-Anweisungen für die Verwendung der Windows-Authentifizierung mit der SQL-Datenbank von Teamcity geben. Die Anweisungen sind für das 64-Bit-Setup gleich, ändern Sie einfach x86 zu x64

  1. Erstellen Sie eine leere Datenbank in SQL Server
  2. Stellen Sie sicher, dass das in den TeamCity-Diensten konfigurierte Windows-Konto Zugriff auf die Datenbank hat
  3. Kopieren Sie sqljdbc42.jar nach <TeamCity_data_dir>\lib\jdbc\sqljdbc42.jar
  4. Kopieren Sie auth\x86\sqljdbc_auth.dll vom Microsoft Download in <TeamCity_data_dir>\lib\sqljdbc_auth.dll
  5. Öffnen Sie das System & gt; Erweiterte Systemeinstellungen & gt; Umgebungsvariablen und fügen Sie eine Systemvariable TEAMCITY_SERVER_OPTS=-Djava.library.path=<TeamCity_data_dir>\lib hinzu
  6. Klicken Sie in allen Dialogen auf OK und starten Sie die Teamcity-Dienste neu.

Nun können Sie Teamcity über die Windows-Authentifizierung mit dem SQL-Server verbinden, woraufhin der Assistent die Datenbank erstellt.

    
Bron Davies 18.02.2016 04:48
quelle
7

Ich konnte das Problem beheben, indem ich während der Konfiguration der Datenbankkonfiguration die SQL Server-Authentifizierung anstelle der Windows-Authentifizierung verwendete. Nicht sicher, warum dies den Fehler in Bezug auf eine Java-Umgebungsvariable hätte beheben sollen, aber ich kann nur annehmen, dass der Fehler durch das Fehlschlagen der Anmeldung in der Datenbank generiert wurde und aus irgendeinem Grund stattdessen einen nicht zugehörigen Fehler ausgelöst hat.

Dies scheint ein Fehler zu sein, da TeamCity die falsche Fehlermeldung ausgegeben hat. Wenn Sie diesen Fehler erhalten, wechseln Sie zur SQL Server-Authentifizierung.

    
DomBurf 30.07.2015 10:49
quelle
7

Wenn Sie mit 32-Bit arbeiten, können Sie einfach die x86-Version von sqljdbc_auth.dll (aus dem jdbc-Download) in <TeamCityProgramDir>\bin kopieren.

    
Brian Lacy 08.08.2016 22:16
quelle
6

Dies

Ссылка

hat mir geholfen.

Ich habe die Version JDBC 4.1 verwendet.

    
Motlicek Petr 10.08.2015 08:04
quelle
0

In meinem Fall hat es nicht funktioniert, weil einige Dateien von der vorherigen Installation und Version von TeamCity installiert wurden. Ich habe TeamCity deinstalliert, alle TeamCity Ordner gelöscht und neu installiert. Dann hat es wie ein Zauber funktioniert.

    
qub1n 06.05.2017 19:00
quelle
0

Ich stieß heute mit TeamCity 10.x auf dieses Problem, mit gebündeltem Java, und ich wollte eine vorhandene, interne Datenbank zu SQL Server migrieren.

  1. Folgen Sie Einrichten von TeamCity mit MS SQL Server bis Sie müssen den JDBC-Treiber einrichten.
  2. Melden Sie sich mit demselben Windows-Konto, mit dem Sie SQL Server eingerichtet haben, bei Ihrem TeamCity-Server an.
  3. Mit der aktuellen Version sagen sie, dass sie den 6.0+ Treiber herunterladen sollen, aber dann verweisen sie auf die Version 4.x. Sie möchten die Version unter Downloads \ Microsoft JDBC Driver 6.2 für SQL Server \ sqljdbc_6.2 \ enu \ mssql-jdbc-6.2.2.jre8.jar und in C kopieren: \ ProgramData \ JetBrains \ TeamCity \ lib \ jdbc \ mssql-jdbc-6.2.2.jre8.jar .
  4. Kopieren Sie von demselben 6.x-Treiberdownload Downloads \ Microsoft JDBC Driver 6.2 für SQL Server \ sqljdbc_6.2 \ enu \ auth \ x86 \ sqljdbc_auth.dll nach C: \. ProgramData \ JetBrains \ TeamCity \ lib \ sqljdbc_auth.dll .
  5. Fügen Sie eine neue Systemumgebungsvariable namens TEAMCITY_SERVER_OPTS mit dem Wert von -Djava.library.path=C:\ProgramData\JetBrains\TeamCity\lib .
  6. hinzu
  7. Damit das MaintainDB-Tool funktioniert, fügen Sie eine weitere Systemumgebungsvariable mit dem Namen TEAMCITY_MAINTAINDB_OPTS mit demselben Wert ( -Djava.library.path=C:\ProgramData\JetBrains\TeamCity\lib ).
  8. hinzu

Nun können Sie MaintainDB ausführen, ohne dass ein Fehler auftritt, da die Datei sqljdbc_auth.dll nicht im JAVA-Bibliothekspfad enthalten ist.

Siehe Creating Backup über den Befehl "mainteDB" - line tool - maintainDB Startup Optionen für warum beide Umgebungsvariablen gesetzt werden müssen.

    
James Skemp 22.02.2018 21:12
quelle