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.
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
<TeamCity_data_dir>\lib\jdbc\sqljdbc42.jar
auth\x86\sqljdbc_auth.dll
vom Microsoft Download in <TeamCity_data_dir>\lib\sqljdbc_auth.dll
TEAMCITY_SERVER_OPTS=-Djava.library.path=<TeamCity_data_dir>\lib
hinzu
Nun können Sie Teamcity über die Windows-Authentifizierung mit dem SQL-Server verbinden, woraufhin der Assistent die Datenbank erstellt.
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.
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.
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.
TEAMCITY_SERVER_OPTS
mit dem Wert von -Djava.library.path=C:\ProgramData\JetBrains\TeamCity\lib
. TEAMCITY_MAINTAINDB_OPTS
mit demselben Wert ( -Djava.library.path=C:\ProgramData\JetBrains\TeamCity\lib
). 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.
Tags und Links java windows teamcity windows-server-2012