在Windows Server 2012上安装TeamCity时发生错误“java.library.path中没有sqljdbc_auth”

我正在Windows 2012 Server上安装TeamCity。 我在数据库连接设置屏幕,但得到这个错误。

“执行SQL时出错:从数据源取得连接:java.library.path中没有sqljdbc_auth”

我已经将sqljdbc_auth.dll复制到C:\Windows\System32文件夹,并添加了一个指向此文件夹的系统环境variablesjava.library.path

在数据库配置设置期间,我设法通过使用SQL server身份验证而不是Windows身份验证来解决此问题。 不知道为什么这应该已经解决了错误,因为它涉及到一个Java环境变量,但我只能假设错误是由于它登录到数据库失败,并由于某种原因抛出一个不相关的错误,而不是产生。

这似乎是TeamCity抛出错误的错误信息的错误。 如果出现此错误,请尝试切换到SQL server身份验证。

这个

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

帮助过我。

我使用了JDBC 4.1版本。

即使您在64位平台上,Teamcity也会安装32位版本,除非您故意使用64位。 所以我只是想给你使用Windows身份验证和Teamcity SQL数据库设置的32位指令。 这些指令对于64位设置是相同的,只需将x86更改为x64即可

  1. 在SQL server中创建一个空的数据库
  2. 确保在TeamCity服务上配置的Windows帐户有权访问数据库
  3. 将sqljdbc42.jar复制到<TeamCity_data_dir>\lib\jdbc\sqljdbc42.jar
  4. 将Microsoft下载中的auth\x86\sqljdbc_auth.dll复制到<TeamCity_data_dir>\lib\sqljdbc_auth.dll
  5. 打开系统>高级系统设置>环境变量并添加一个系统变量TEAMCITY_SERVER_OPTS=-Djava.library.path=<TeamCity_data_dir>\lib
  6. 在所有对话框上单击确定,然后重新启动Teamcity服务。

现在,您可以使用Windows身份验证将Teamcity连接到SQL服务器,然后向导将创建数据库。

如果您使用的是32位版本,则可以将x86版本的sqljdbc_auth.dll (从jdbc下载)复制到<TeamCityProgramDir>\bin

在我的情况下,它没有奏效,因为有一些从以前的安装和版本TeamCity isntallation文件。 我卸载了TeamCity,删除了所有TeamCity文件夹并重新安装。 然后它就像一个魅力。