很难知道您的环境可能存在什么问题,但我可以告诉您什么对我有用。关键项目是使用 JTDS JDBC 驱动程序而不是 Microsoft JDBC 驱动程序。
从http://jtds.sourceforge.net/下载最新的驱动程序
将下载的 zip 文件解压到%TEAMCITY_DATA_PATH%/config文件夹中
如果您使用 NTLM(即 Windows)身份验证连接到数据库,请为database.properties文件指定以下内容:
# Database: Microsoft SQL server (via jtds driver)
connectionUrl=jdbc:jtds:sqlserver://localhost:1433/TeamCity
#connectionProperties.user=
#connectionProperties.password=
注意:这需要 TeamCity Windows 服务在作为数据库所有者的帐户的凭据下运行。此外,ntlmauth.dll文件也需要从JTDS zip 文件\x86\SSO文件夹复制到TeamCityHome\bin文件夹。
如果您使用 SQL 身份验证连接到数据库,请为 database.properties 文件指定以下内容:
# Database: Microsoft SQL server (via jtds driver)
connectionUrl=jdbc:jtds:sqlserver://localhost:1433/TeamCity
connectionProperties.user=<SQL Login Name>
connectionProperties.password=<SQL Login Password>
因为 JTDS 驱动程序没有要使用的默认端口,所以您必须在为connectionUrl提供的值中指定一个端口。
如果您使用命名实例,您可以通过以下方式指定实例名称:
例如,如果实例名称是sqlexpress,则将实例属性添加到连接 URL 中,如下所示:
connectionUrl=jdbc:jtds:sqlserver://localhost:1433/TeamCity;instance=sqlexpress
或者,在 database.properties 文件中指定相应的属性:
connectionProperties.instance=sqlexpress
另见:http ://confluence.jetbrains.com/display/TCD9/Setting+up+an+External+Database