MaintainDB.cmd Login Failed


I have one server which runs TeamCity, and I am looking at migrating from the internal database to an external instance of SQL Server on a separate server.  I am following the instructions here:

On my database server, I have a fresh SQL instance named TEAMCITY, which has a user TeamCity created on it.

When I go to run maintaindb.cmd, I receive the following output. 

C:\TeamCity\bin>C:\TeamCity\bin\maintainDB.cmd migrate -A "C:\ProgramData\JetBrains\TeamCity" -T "C:\Users\zak.turchansky\Desktop\"
Using logs directory "C:\TeamCity\logs"
TeamCity maintenance tool. Copyright 2006-2019 JetBrains s.r.o. All Rights Reserved.

Command line arguments: migrate -A C:\ProgramData\JetBrains\TeamCity -T C:\Users\zak.turchansky\Desktop\
Using TeamCity data directory: C:\ProgramData\JetBrains\TeamCity
Using database settings from the TeamCity data directory for source database: C:\ProgramData\JetBrains\TeamCity\config\
Using source database
database type: HSQLDB2
connection string: jdbc:hsqldb:file:C:/ProgramData/JetBrains/TeamCity/system/buildserver
Source JDBC driver version 2.3 (HSQL Database Engine Driver)
Source database system version 2.3.2 (HSQL Database Engine)
Source database metadata version: 2
Software schema version: 915
Source database schema version: 915
Connected to the Source DB successfully.
Using explicitly specified target database settings: C:\Users\zak.turchansky\Desktop\
Using target database
database type: MSSQL
connection string: jdbc:sqlserver://<ServerFQDN>\TEAMCITY:1433;databaseName=TeamCity;
Failed: Login failed for user 'TeamCity'. ClientConnectionId:f4e8f541-021b-4029-96d9-1b80d35c16f5 (error code: 18456): Login failed for user 'TeamCity'. ClientConnectionId:f4e8f541-021b-4029-96d9-1b80d35c16f5
Critical error has occurred during command execution.


I have ensured that mixed authentication is enabled.  

I have tested the connection from my TeamCity server to the database instance by using a test UDL file, and I've verified that I both see the TEAMCITY db instance on the target machine and am able to log in with my TeamCity user and password.

In the database logs where I have set it to log all login attempts, I do not see any login attempts when I run the maintaindb script. When I use the udl file to test the connection, a login is correctly logged. 

In the teamcity-maintenance log I don't get anything more detailed than the same Login failed message.  I have verified that both the username and password are correct.

I have also ensured that my TEAMCITY database instance is configured to allow the Named Pipes protocol in addition to TCP/IP.

Is there anything else I might be doing wrong here in order to allow maintainDB to authenticate?


1 comment
Comment actions Permalink

Figured this out.  Basically the issue was that I needed to configure an explicit TCP/IP port for my named instance and create a separate firewall rule for that.


Please sign in to leave a comment.