TeamCity忘记了管理员密码 - 在哪里看?

时间:2009-02-03 05:43:42

标签: teamcity

我需要恢复/重置JetBrain的 TeamCity 的管理员密码。

我对服务器有完整的RDP访问权限,所以没有问题。我们使用它已经有两个月了,所以现在我已经忘记了我的登录 - 我平常的登录不起作用。

目前没有数据库的设置,所以希望用户名只是在某个文件中,但到目前为止找不到运气。

19 个答案:

答案 0 :(得分:77)

从TeamCity 8,您可以以超级用户身份登录并以此方式更改密码。您只需使用空用户名和最后一次出现在logs \ teamcity-server.log文件中的“超级用户身份验证令牌”作为您的密码。

请参阅以下内容以获取更多信息:

答案 1 :(得分:42)

如果这些都不起作用,请参阅http://sebastienlachance.com/post/Resetting-TeamCity-Password.aspx

打开命令提示符并转到\ webapps \ ROOT \ WEB-INF \ lib文件夹。现在输入以下内容:

..\..\..\..\jre\bin\java.exe -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword username newpassword

答案 2 :(得分:5)

对于TeamCity 6.5.4

从[TeamCity安装文件夹] \ webapps \ ROOT \ WEB-INF \ lib中的命令提示符:

..\..\..\..\jre\bin\java -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin NewPassword

在我的情况下我的用户名是'admin'(我想我在安装过程中设置了它,但我无法确定)。

我省略了TeamCity参数的路径,它足够智能使用正确的路径(我的是c:\ users \ administrator.BuildServer)

当我向TeamCity提供(错误的)路径作为参数时,我收到了这条消息:

Using TeamCity configuration directory path: c:/TeamCity/.BuildServer
Exception in thread "main" java.sql.SQLException: Table not found in statement [UPDATE users SET PASSWORD = ? WHERE USERNAME = ? AND REALM IS NULL]
    at org.hsqldb.jdbc.Util.throwError(Util.java:58)
    at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(jdbcPreparedStatement.java:1833)
    at org.hsqldb.jdbc.jdbcConnection.prepareStatement(jdbcConnection.java:580)
    at ChangePassword.main(ChangePassword.java:14)

如果这也使其他人感到困惑。

答案 3 :(得分:4)

您可以尝试通过删除TeamCity数据目录(默认情况下为$/.BuildServer目录)来重置TeamCity的安装。

答案 4 :(得分:3)

尝试以下方法:

首先停止TeamCity服务(如果已安装,也会停止构建代理)。 接下来打开一个控制台,转到java目录并从那里运行以下命令:

java.exe -cp server.jar; hsqldb.jar ChangePassword USERNAME PASSWORD "PATH_TO_YOUR_TEAMCITY_INSTALLATION".BuildServer

答案 5 :(得分:3)

我只需要通过v5 EAP来解决这个问题。

我设法通过运行:

成功重置密码
C:\TeamCity\webapps\ROOT\WEB-INF\lib>..\..\..\..\jre\bin\java -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin password c:\TeamCity\.BuildServer

虽然您需要将C:\ TeamCity替换为您的安装位置。

答案 6 :(得分:2)

对于每个可能在原始答案之后多年到达本文的人,我都会有一个内置的超级用户帐户,每次启动团队城市时都会重新生成密码,密码会出现在日志中。您可以使用此超级用户登录并重置任何密码。这非常容易。

https://confluence.jetbrains.com/display/TCD9/Super+User

答案 7 :(得分:2)

如果这对其他人有帮助,那么在我的服务器上安装TeamCity的人将构建目录放在管理员的配置文件下,而不是在C:\ TeamCity中。

答案 8 :(得分:2)

特别是对于在Windows上运行Tomcat的TeamCity,它将是C:\ ProgramData \ JetBrains \ TeamCity

指定为最后一个参数的目录需要是您的数据目录(在/logs/teamcity-server.log中查找)

如果您没有正确的话,您将收到“找不到表”错误。

如果您正在运行TeamCity,您将收到“数据库已在使用中”错误。

您也可以搜索/logs/teamcity-server.log,看看您是否创建了管理员,管理员或其他管理员用户名。

答案 9 :(得分:1)

TeamCity始终使用数据库 - 如果您尚未明确配置数据库,则为uses a HSQLDB database to store data internally

使用外部数据库时,用户信息存储在该数据库中,因此您的案例中的用户信息很可能会存储在HSQLDB系统中。

您可以通过数据库充分利用系统访问 - 但我建议先备份。

第二个建议 - 给JetBrains的支持人员发送电子邮件。甚至在我的工作场所在TeamCity Enterprise许可证上大量涌现之前,他们的支持一流 - 快速,准确且有用。

答案 10 :(得分:1)

我们使用Teamcity 7和MS SQL Server作为RDBMS。

要重置密码,您可以使用以下查询:

UPDATE users SET password = LOWER(SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('md5','your_new_password')),3,32))
 where username = "your_user_name";

答案 11 :(得分:1)

这对我有用。

关闭服务器服务

> cd c:\TeamCity\webapps\ROOT\WEB-INF\lib>

然后

> ..\..\..\..\jre\bin\java.exe -cp server.jar ;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin password1 C:\ProgramData\JetBrains\TeamCity\

如果没有最后的路径,它将失败:

Exception in thread "main" java.sql.SQLException: Table not found in statement [
UPDATE users SET PASSWORD = ? WHERE USERNAME = ? AND REALM IS NULL]
        at org.hsqldb.jdbc.Util.throwError(Util.java:58)
        at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(jdbcPreparedStatement.ja
va:1833)
        at org.hsqldb.jdbc.jdbcConnection.prepareStatement(jdbcConnection.java:5
80)
        at ChangePassword.main(ChangePassword.java:14)

答案 12 :(得分:1)

  1. 停止团队合作
  2. 您应该将路径传递给您的构建服务器 例如如果您将构建服务器安装到目录“c:\。BuildServer”
  3. ........ \ jre \ bin \ java.exe -cp server.jar; common-api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword username newpassword c :\ BuildServer

答案 13 :(得分:1)

第一点是,如果您注销登录屏幕,则已填写用户名“TCAdmin”,此时应为“管理员”。 TCAdmin是(我认为)默认版本5管理员用户的全名。将其更改为管理员,然后使用密码我认为它解决了我的问题。

重置... 如果它在TeamCity版本5上帮助Windows XP上的其他人,我的.BuildServer配置信息也在我当前登录用户的文档和设置文件夹下。另外,我在Sebastien上面的答案中被jar文件列表中的一个空格绊倒了。

所以我在命令提示符下更改为此目录:

 c:\teamcity\webapps\ROOT\WEB-INF\lib 

然后这个命令行(设置密码:Password1)对我有用:

C:\TeamCity\webapps\ROOT\WEB-INF\lib>..\..\..\..\jre\bin\java.exe -cp server.jar;commonapi.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword administrator Password1

提供了输出:

Using TeamCity configuration directory path: C:/Documents and Settings/tamw/.BuildServer 
Password changed successfuly

答案 14 :(得分:1)

TeamCity 5使用MySQL(可能还有其他版本和RDBM,但未经测试),可以通过SQL直接更新密码:

mysql> update users set password = md5("mypass123") where username = "bob";

尽管如此,如果没有充分理由不这样做,我会坚持使用其他人提到的CLI版本。

答案 15 :(得分:0)

更改用户密码:

关闭服务器

切换到/ webapps / ROOT / WEB-INF / lib目录

调用以下命令:

Windows平台: java -cp server.jar; common-api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword

Unix平台: java -cp server.jar:common-api.jar:commons-codec-1.3.jar:util.jar:hsqldb.jar ChangePassword

如果您使用TeamCity数据文件的默认路径,则可以跳过该选项:/。BuildServer

[参考:http://confluence.jetbrains.com/display/TCD7/Changing+user+password+with+default+authentication+scheme]

答案 16 :(得分:0)

或者,您可以使用TeamCity服务器日志并检索超级用户令牌。

使用令牌,转到URL:http://(server):(port)/login.html?super=1

即:http://localhost:92/login.html?super=1

登录后,您始终可以创建一个新用户或重置该帐户的密码。

答案 17 :(得分:0)

超级用户直接URL:

http://servername:port/login.html?super=1

打开TeamCity日志文件夹(示例C:驱动器:C:\ TeamCity \ logs):teamcity-server.log,找到密钥:“超级用户身份验证”

[2019-03-04 12:14:30,770]   INFO -   jetbrains.buildServer.SERVER - Super user authentication token: `8347518935696887114` (use empty username with the token as the password to access the server)

答案 18 :(得分:0)

我在相同情况下通过并以超级用户身份登录,请按照以下步骤操作:

1-在“ teamcity-server.log”中的路径“ XX:\ TeamCity \ logs”中获取令牌;

2-使用URL上的令牌访问和登录:“ / login.html?super = 1”;

有关它的更多信息:

https://confluence.jetbrains.com/display/TCD18/Super+User

相关问题