After upgrading MySQL, Confluence fails starting: Your database Storage Engine could not be determined
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
After upgrading the MySQL database from version 5.6 to version 5.7, Confluence isn't starting anymore. MySQL 5.6 was previously configured according to the document Database Setup For MySQL, and worked fine before the upgrade.
However, after the upgrade, Confluence UI shows up the following error:
Confluence had problems starting up
Description: This installation of Confluence has failed one or more bootstrap configuration checks. Please check the logs for details.
Exception: Your database Storage Engine could not be determined
Environment
Confluence Server or Data Center (any version)
MySQL 5.7, upgraded from MySQL 5.6
CentOS 7
Diagnosis
In the application logs, we can see that Confluence can't identify the Transaction Isolation level and the Storage Engine:
atlassian-confluence.log
1
2
3
2021-05-03 13:23:58,301 ERROR [localhost-startStop-1] [confluence.setup.dbcheck.MySQLChecker] checkIsolationLevel MySQL isolation level could not be read. Isolation level must be 'READ-COMMITTED'. See http://confluence.atlassian.com/x/GAtmDg
2021-05-03 13:23:58,516 ERROR [localhost-startStop-1] [atlassian.confluence.setup.BootstrapApplicationStartupListener] checkConfigurationOnStartup Your database Storage Engine could not be determined
Also in the application logs, Confluence reports the table performance_schema.global_variables is missing after the upgrade:
1
2
3
4
5
6
7
8
9
10
11
2021-04-29 16:00:33,846 WARN [HealthCheckWatchdog:thread-1] [troubleshooting.healthcheck.concurrent.SupportHealthCheckTask] healthCheckError Unable to complete execution of health check Server SQL Mode due to an exception
java.util.concurrent.ExecutionException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'performance_schema.global_variables' doesn't exist
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:206)
at com.atlassian.troubleshooting.healthcheck.concurrent.SupportHealthCheckTask.getFutureWithTimeout(SupportHealthCheckTask.java:88)
at com.atlassian.troubleshooting.healthcheck.concurrent.SupportHealthCheckTask.lambda$runAsync$0(SupportHealthCheckTask.java:68)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'performance_schema.global_variables' doesn't exist
When logging into the database and trying to check the Storage Engine and Isolation level, the output shows empty rows as the result:
MySQL console
1
2
3
4
5
6
7
8
9
10
11
12
mysql> USE confluence;
Database changed
mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
mysql> SELECT @@TX_ISOLATION;
+----------------+
+----------------+
+----------------+
1 row in set, 1 warning (0.00 sec)
Cause
The MySQL upgrade didn't complete properly.
Solution
Shutdown Confluence.
Run the following command on a terminal to complete the MySQL upgrade:
1
[user@atlassian]$ mysql_upgrade --force
Restart MySQL.
Start Confluence.
Was this helpful?