我正在Windows 2012 Server上安装TeamCity。我正在数据库连接设置屏幕但是收到此错误。
“执行时出现SQL错误:从数据源获取连接:java.library.path中没有sqljdbc_auth”
我已将sqljdbc_auth.dll
复制到C:\Windows\System32
文件夹,并添加了指向此文件夹的系统环境变量java.library.path
。
答案 0 :(得分:9)
<TeamCity_data_dir>\lib\jdbc\sqljdbc42.jar
auth\x86\sqljdbc_auth.dll
从Microsoft下载复制到<TeamCity_data_dir>\lib\sqljdbc_auth.dll
TEAMCITY_SERVER_OPTS=-Djava.library.path=<TeamCity_data_dir>\lib
现在,您可以使用Windows身份验证将Teamcity连接到SQL服务器,之后向导将创建数据库。
答案 1 :(得分:7)
答案 2 :(得分:6)
我设法在数据库配置设置期间使用SQL Server身份验证而不是Windows身份验证来解决此问题。不确定为什么这应该修复与Java环境变量相关的错误,但我只能假设错误是由于它无法登录到数据库而产生的,并且由于某种原因引发了无关的错误。
这似乎是TeamCity抛出错误错误消息的错误。如果出现此错误,请尝试切换到SQL Server身份验证。
答案 3 :(得分:6)
如果您运行的是32位,则可以将sqljdbc_auth.dll
的x86版本(从jdbc下载)复制到<TeamCityProgramDir>\bin
。
答案 4 :(得分:1)
您应该检查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下找不到本地库sqljdbc_auth.dll: \ BuildServer \ lib \ jdbc \ native;将继续查找sun.boot.library.path和java.library.path。
将sqljdbc_auth.dll
库放入E:\BuildServer\lib\jdbc\native\windows-i386
中并重新启动服务后,一切都很好。无需干预bin
文件夹(在TC升级过程中将其重置)或无需定义环境变量。
答案 5 :(得分:0)
在我的情况下它没有用,因为之前的安装和版本TeamCity isntallation有一些文件。我卸载了TeamCity,删除了所有TeamCity文件夹并重新安装。然后它就像一个魅力。
答案 6 :(得分:0)
我今天遇到了TeamCity 10.x这个带有捆绑Java的问题,我想将现有的内部数据库迁移到SQL Server。
TEAMCITY_SERVER_OPTS
的新系统环境变量,其值为-Djava.library.path=C:\ProgramData\JetBrains\TeamCity\lib
。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,了解为何需要设置两个环境变量。