TeamCity忘记了pipe理密码 – 在哪里看?
我需要恢复/重置JetBrain TeamCity的pipe理员密码。
我有完整的RDP访问服务器,所以没有问题。 我们使用它仅仅2个月,所以现在我已经忘记了我的login名 – 我通常的login名不起作用。
目前没有数据库设置,所以希望用户名只能在某个文件中,但没有运气find它。
如果没有这些作品,请参阅http://sebastienlachance.com/post/Resetting-TeamCity-Password.aspx 。
打开命令提示符并转到\ webapps \ ROOT \ WEB-INF \ lib文件夹。 现在input以下内容:
..\..\..\..\jre\bin\java.exe -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword username newpassword
从TeamCity 8开始,您可以以超级用户身份login,并以此方式更改密码。 您只需要使用一个空的用户名和最后一次出现在logs \ teamcity-server.log文件中的“超级用户身份validation令牌”作为您的密码。
请参阅以下内容了解更多信息:
- TeamCity 8 – http://confluence.jetbrains.com/display/TCD8/Super+User
- TeamCity 9 – http://confluence.jetbrains.com/display/TCD9/Super+User
- TeamCity 10 – https://confluence.jetbrains.com/display/TCD10/Super+User
对于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
我的用户名是'pipe理员'在我的情况(我想我在安装过程中设置,但我不能确定)。
我省略了TeamCity参数的path,使用正确的path足够聪明(我的是c:\ users \ administrator.BuildServer)
当我向TeamCity提供了(错误的)path作为参数时,我收到了这条消息:
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)
如果这也让其他人感到困惑。
您可以尝试通过删除TeamCity数据目录(默认$/.BuildServer
目录)来重置TeamCity的安装$/.BuildServer
尝试以下操作:
首先停止TeamCity服务(如果安装,也会停止构build代理)。 接下来打开一个控制台,进入你的java目录并从那里运行下面的命令:
java.exe -cp server.jar; hsqldb.jar ChangePassword USERNAME PASSWORD "PATH_TO_YOUR_TEAMCITY_INSTALLATION".BuildServer
我只需要用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
尽pipe您需要将C:\ TeamCityreplace为安装位置。
如果这有助于其他人,在我的服务器上安装TeamCity的人将构build目录放在pipe理员configuration文件下,而不是C:\ TeamCity中。
TeamCity总是使用一个数据库 – 如果你没有明确地configuration一个数据库 ,它会使用一个HSQLDB数据库在内部存储数据 。
当使用外部数据库时,用户信息存储在该数据库中,因此您案例中的用户信息很可能会存储在HSQLDB系统中。
你可以通过与数据库进行交stream来访问系统,但我build议先进行备份。
第二个build议 – 把支持人员放在JetBrains的电子邮件中。 即使在我的工作场所出现TeamCity Enterprise许可证之前,他们的支持也非常出色 – 快速,准确和有帮助。
使用MySQL的TeamCity 5(可能还有其他版本和RDBM,但未经testing),可以直接通过SQL更新密码:
mysql> update users set password = md5("mypass123") where username = "bob";
不过,如果没有好的理由不这样做,我会坚持已经提到的CLI版本。
首先,如果您注销login屏幕,那么用户名“TCAdmin”已经填写,当它是“pipe理员”时。 TCAdmin是(我认为)默认版本5pipe理员用户的全名。 将其更改为pipe理员,然后使用密码,我认为这是解决了我的问题。
重置…如果TeamCity版本5上的Windows XP上的其他人帮助其他人,我的.BuildServerconfiguration信息也在我当前login的用户的文档和设置文件夹下。 在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
- 停止teamcity
- 你应该传递你的buildserver的path,例如,如果你安装了生成服务器到目录“c:\。BuildServer”
…….. \ jre \ bin \ java.exe -cp server.jar; common-api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword username newpassword c:\。 BuildServer
这是为我工作的。
closures服务器服务
> 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)
特别是在Windows上的Tomcat上运行的TeamCity,它将是C:\ ProgramData \ JetBrains \ TeamCity
指定为最后一个参数的目录需要是数据目录(位于/logs/teamcity-server.log中)
如果你没有这个正确的话,你会得到'表未find'的错误。
如果你有TeamCity的运行,你会得到一个'数据库已经被使用'的错误。
您还可以search/logs/teamcity-server.log查看您是否创build了pipe理员,pipe理员或其他pipe理员用户名。
我们使用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";
对于像我刚才那样在原来的答案后可能到达这篇文章的每个人,都有一个内置的超级用户帐户,密码每次启动时都会重新生成,并且密码在日志中。 您可以使用此超级用户login并重置任何密码。 这很容易。
要更改用户密码:
关机服务器
切换到/ 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数据文件的默认path,则可以跳过该选项:/.BuildServer
[参考:http://confluence.jetbrains.com/display/TCD7/Changing+user+password+with+default+authentication+scheme]