在Windows Server 2012上安装TeamCity时出错"java.library.path中没有sqljdbc_auth"

Dom*_*urf 9 java windows teamcity windows-server-2012

我在Windows 2012 Server上安装TeamCity.我正在数据库连接设置屏幕但是收到此错误.

"执行时出现SQL错误:从数据源获取连接:java.library.path中没有sqljdbc_auth"

我已将其复制sqljdbc_auth.dll到该C:\Windows\System32文件夹并添加了java.library.path指向此文件夹的系统环境变量.

Bro*_*ies 10

除非您故意使用64位,否则即使您使用的是64位平台,Teamcity也会安装32位版本.因此,我将向您提供有关使用Windows身份验证和Teamcity SQL数据库设置的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
  6. 在所有对话框上单击"确定",然后重新启动Teamcity服务.

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

  • 这应该是TeamCity指令的编写方式,而不是他们目前的文档让我无处可去..非常感谢这个答案 (4认同)
  • 第5步令人困惑.Server 2016有一个改进的对话框,要求您分离变量名称和变量值.正确的变量名是`TEAMCITY_SERVER_OPTS`,正确的变量值是`-Djava.library.path = <TeamCity_data_dir>\lib`,当然用`<TeamCity_data_dir>`替换你的实际teamcity数据目录路径. (2认同)

Mot*_*etr 7

这个

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

帮助过我.

我使用的是JDBC 4.1版本.

  • 或者,如果你在32位上运行,只需将x86版本的`sqljdbc_auth.dll`(从jdbc下载)放到`<TeamCityProgramDir>\bin`中 (3认同)

Dom*_*urf 6

我设法通过在数据库配置设置期间使用SQL Server身份验证而不是Windows身份验证来解决此问题.不确定为什么这应该修复与Java环境变量相关的错误,但我只能假设错误是由于它无法登录到数据库而产生的,并且由于某种原因引发了无关的错误.

这似乎是一个错误,TeamCity抛出错误的错误消息.如果出现此错误,请尝试切换到SQL Server身份验证.


Bri*_*acy 6

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

  • 这在迁移步骤中对我有用。但是随后运行TeamCity时,仍然找不到该文件。所以我最终将文件复制到`TeamCityProgramDir \ bin`和`TeamCityProgramDir \ lib`,现在一切正常。 (2认同)