Jira without its database is a library with no books. When startup stops at the database stage, the fault is usually in the database's world - not in Jira's. Check there first.
Every project, issue, user and permission in Jira lives in its database, so Jira checks that connection early and refuses to continue without it. The confusing part is that 'Jira cannot connect to the database' has at least five different causes: the database service is down, the credentials in Jira's config are wrong, the database drive is full, the database is busy recovering, or a stale lock file survived a crash. This page separates them calmly, in the order you should test them.
Database: Jira is unable to connect to the database. The connection may have failed due to an incorrect JDBC URL, unavailable database server, or invalid credentials. Check the logs for the underlying error and correct the configuration in dbconfig.xml.
After a shared reboot, databases often start slower than Jira expects, and after a hard crash they can sit in recovery for a long time while appearing 'running'. A Jira that failed at 9:00 sometimes starts perfectly at 9:10 with no fix at all - because the database finished recovering.
services.msc on the database server and confirm the database service (SQL Server, PostgreSQL, MySQL or Oracle) is RunningJira reads its database address and credentials from one file: dbconfig.xml, in the Jira home directory. If the database moved, its port changed, or the Jira database user's password was changed inside the database only, this file is now lying to Jira - and Jira believes the file.
dbconfig.xml in the Jira home directory - on a standard Windows install the home directory sits under C:\Program Files\Atlassian\Application Data\Jiradbconfig.xml to 'reset' Jira: you would be deleting the map to every project you ownTwo causes hide behind the same symptom. A database drive at 100 percent makes the database refuse or drop connections with errors that look like corruption. And after a crash, Jira can fail with a locked message: Jira protects its home directory with a lock file, and a lock left behind by a dead process convinces the new process that Jira is 'already running'.
java.exe process remains.jira-home.lock in the Jira home directory and delete that one fileThe atlassian-jira.log in the log folder of the Jira home directory records the database handshake in detail. Search it for the connection error: a 'login failed' message means credentials; a 'connection refused' or timeout means the server or network; a JDBC driver error means the address or database name in dbconfig.xml is wrong. Let the exact wording choose your fix instead of trying all five.
atlassian-jira.log and find the startup attempt by timeERROR lines mentioning database, JDBC or connectionCaused by line - it carries the database's own error, in the database's own wordsdbconfig.xml first; it is a small file that holds the keys to the whole system.The full Jira startup repair, step by step, with the exact screens and log lines shown live.
▶️ Watch Full VideoIn dbconfig.xml, inside the Jira home directory. It holds the JDBC URL (server, port and database name), the username, and the password. If the database server moves or the Jira database password changes, this file must be updated to match, or every startup will fail at the database stage.
Usually not. In most cases it is the stale .jira-home.lock file: Jira creates it while running, and a crash or forced shutdown can leave it behind, so the next start believes another Jira is already using the home directory. Stop the service, confirm no Jira Java process is running, delete that single lock file, and start again. Only delete it when you are certain Jira is fully stopped.
Edit the password inside dbconfig.xml in the Jira home directory so it matches the password set in the database, then restart the Jira service. Test the same credentials with the database's own tool first - if the database itself rejects them, fix the account in the database rather than guessing in the file.