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

问题描述 投票:9回答:7

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

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

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

java windows teamcity windows-server-2012
7个回答
9
投票

除非您故意使用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服务器,之后向导将创建数据库。


7
投票

这个

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

帮助过我。

我使用的是JDBC 4.1版本。


6
投票

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

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


6
投票

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


1
投票

您应该检查TeamCity服务器日志。我的(位于c:\TeamCity\logs\teamcity-server.log)提到以下内容:

[2019-03-20 07:54:56,045] INFO - jetbrains.buildServer.STARTUP - 在E:\ BuildServer \ lib \ jdbc \ native \ windows-i386或E:\ BuildServer \下找不到本机库sqljdbc_auth.dll LIB \ JDBC \本地;将继续查看sun.boot.library.path和java.library.path。

sqljdbc_auth.dll图书馆放在E:\BuildServer\lib\jdbc\native\windows-i386并重新启动服务后,一切都很好,花花公子;无需插入bin文件夹(它们在TC升级期间重置)或必须定义环境变量。


0
投票

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


0
投票

我今天遇到了TeamCity 10.x这个带有捆绑Java的问题,我想将现有的内部数据库迁移到SQL Server。

  1. 关注Setting up TeamCity with MS SQL Server,直到您需要设置JDBC驱动程序。
  2. 使用您设置SQL Server的Windows帐户登录TeamCity服务器。
  3. 他们说使用当前版本下载6.0+驱动程序,然后引用4.x版本。您希望下载\ Microsoft JDBC驱动程序6.2的版本为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驱动程序下载,将适用于SQL Server \ sqljdbc_6.2 \ enu \ auth \ x86 \ sqljdbc_auth.dll的Downloads \ Microsoft JDBC驱动程序6.2复制到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库路径中的错误。

请参阅Creating Backup via maintainDB command-line tool - maintainDB Startup Options,了解为什么需要设置两个环境变量。

© www.soinside.com 2019 - 2024. All rights reserved.