簡體   English   中英

在 Windows Server 2012 上安裝 TeamCity 時出現錯誤“java.library.path 中沒有 sqljdbc_auth”

[英]Error "no sqljdbc_auth in java.library.path" installing TeamCity on Windows Server 2012

我正在 Windows 2012 服務器上安裝 TeamCity。 我在數據庫連接設置屏幕但收到此錯誤。

“執行時出現 SQL 錯誤:從數據源獲取連接:java.library.path 中沒有 sqljdbc_auth”

我已將sqljdbc_auth.dll復制到C:\\Windows\\System32文件夾並添加了一個指向此文件夾的系統環境變量java.library.path

即使您在 64 位平台上,Teamcity 也會安裝 32 位版本,除非您故意使用 64 位。 因此,我將向您提供有關在 Teamcity SQL 數據庫設置中使用 Windows 身份驗證的 32 位說明。 64 位設置的說明相同,只需將 x86 更改為 x64

  1. 在 SQL Server 中創建一個空數據庫
  2. 確保在 TeamCity 服務上配置的 Windows 帳戶可以訪問數據庫
  3. 將 sqljdbc42.jar 復制到<TeamCity_data_dir>\\lib\\jdbc\\sqljdbc42.jar
  4. auth\\x86\\sqljdbc_auth.dll從 Microsoft 下載復制到<TeamCity_data_dir>\\lib\\sqljdbc_auth.dll
  5. 打開系統 > 高級系統設置 > 環境變量並添加一個系統變量 TEAMCITY_SERVER_OPTS 設置為值-Djava.library.path=<TeamCity_data_dir>\\lib或運行setx TEAMCITY_SERVER_OPTS=-Djava.library.path=<TeamCity_data_dir>\\lib
  6. 在所有對話框中單擊確定並重新啟動 Teamcity 服務。

現在您可以使用 Windows 身份驗證將 Teamcity 連接到 SQL 服務器,然后向導將創建數據庫。

編輯:2020 年 1 月 27 日

對於 2019.2.1 更新,我不得不將 sql_jdbcauth.dll 文件移動到<TeamCity_data_dir>\\system\\caches\\jdbc\\native\\windows-i386這可能只是升級過程中的一個錯誤。

這個

http://www.mikeobrien.net/blog/teamcity-sqlserver-integrated-security

幫助過我。

我使用了 JDBC 4.1 版本。

我設法通過在數據庫配置設置期間使用 SQL Server 身份驗證而不是 Windows 身份驗證來解決該問題。 不知道為什么這應該修復錯誤,因為它與 Java 環境變量有關,但我只能假設錯誤是由於無法登錄數據庫而產生的,並且由於某種原因引發了一個無關的錯誤。

這似乎是 TeamCity 拋出錯誤錯誤消息的錯誤。 如果出現此錯誤,請嘗試切換到 SQL Server 身份驗證。

如果您在 32 位上運行,您只需將sqljdbc_auth.dll的 x86 版本(從 jdbc 下載)復制到<TeamCityProgramDir>\\bin

您應該檢查您的 TeamCity 服務器日志。 我的(位於c:\\TeamCity\\logs\\teamcity-server.log )提到以下內容:

[2019-03-20 07:54:56,045] 信息 - jetbrains.buildServer.STARTUP - 在 E:\\BuildServer\\lib\\jdbc\\native\\windows-i386 或 E:\\BuildServer\\ 下找不到本機庫 sqljdbc_auth.dll lib\\jdbc\\native; 將繼續查找 sun.boot.library.path 和 java.library.path。

sqljdbc_auth.dll庫放入E:\\BuildServer\\lib\\jdbc\\native\\windows-i386並重新啟動服務后一切正常; 無需干預bin文件夾(它們會在 TC 升級期間重置)或定義環境變量。

在我的情況下,它不起作用,因為以前安裝的一些文件和版本 TeamCity istallation。 我卸載了 TeamCity,刪除了所有 TeamCity 文件夾並重新安裝。 然后它就像一個魅力。

我今天在使用捆綁 Java 的 TeamCity 10.x 時遇到了這個問題,我想將現有的內部數據庫遷移到 SQL Server。

  1. 按照使用 MS SQL Server 設置 TeamCity直到您需要設置 JDBC 驅動程序。
  2. 使用設置 SQL Server 所用的相同 Windows 帳戶登錄到 TeamCity 服務器。
  3. 他們說使用當前版本下載 6.0+ 驅動程序,然后參考 4.x 版本。 您需要Downloads\\Microsoft JDBC Driver 6.2 for SQL Server\\sqljdbc_6.2\\enu\\mssql-jdbc-6.2.2.jre8.jar 中的版本,並將其復制到C:\\ProgramData\\JetBrains\\TeamCity\\lib\\jdbc \\mssql-jdbc-6.2.2.jre8.jar
  4. 從相同的 6.x 驅動程序下載,將Downloads\\Microsoft JDBC Driver 6.2 for SQL Server\\sqljdbc_6.2\\enu\\auth\\x86\\sqljdbc_auth.dll復制到C:\\ProgramData\\JetBrains\\TeamCity\\lib\\sqljdbc_auth.dll
  5. 添加名為TEAMCITY_SERVER_OPTS的新系統環境變量,其值為-Djava.library.path=C:\\ProgramData\\JetBrains\\TeamCity\\lib
  6. 為了讓MaintainDB 工具正常工作,添加另一個名為TEAMCITY_MAINTAINDB_OPTS系統環境變量,具有相同的值( -Djava.library.path=C:\\ProgramData\\JetBrains\\TeamCity\\lib )。

現在您可以運行MaintainDB 而不會出現sqljdbc_auth.dll 不在JAVA 庫路徑中的錯誤。

請參閱通過維護數據庫命令行工具創建備份 - 維護數據庫啟動選項,了解為什么需要設置這兩個環境變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM