Support Health Check fail for Collation and Character Set using MySQL database

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

Problem

Confluence is using MySQL database and may be exhibiting the following issue:

  • Healtcheck fails with the following problems

(Auto-migrated image: description temporarily unavailable)
  • atlassian-confluence.log logs the following errors:

1 2 3 4 5 6 7 8 9 10 WARN [HealthCheckWatchdog:thread-*] [troubleshooting.healthcheck.concurrent.SupportHealthCheckTask] healthCheckError Unable to complete execution of health check Character Set due to an exception java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.sql.SQLException: Tablespace '`confluence`.`supporthealthchecks`' exists. ... WARN [HealthCheckWatchdog:thread-*] [troubleshooting.healthcheck.concurrent.SupportHealthCheckTask] healthCheckError Unable to complete execution of health check Collation due to an exception ... Caused by: java.lang.RuntimeException: java.sql.SQLException: Tablespace '`confluence`.`supporthealthchecks`' exists. ... Caused by: java.sql.SQLException: Tablespace '`confluence`.`supporthealthchecks`' exists. ...

or

1 2 WARN [HealthCheckWatchdog:thread-4] [troubleshooting.healthcheck.concurrent.SupportHealthCheckTask] healthCheckError Unable to complete execution of health check Character Set due to an exception java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.sql.SQLException: Can't create table 'supporthealthchecks' (errno: 13)

or

1 2 WARN [HealthCheckWatchdog:thread-4] [troubleshooting.healthcheck.concurrent.SupportHealthCheckTask] healthCheckError Unable to complete execution of health check Collation due to an exception java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.sql.SQLException: Can't create table 'supporthealthchecks' (errno: 13)

  • MySQL log will show the following errors:

1 2 ERROR, InnoDB: Cannot create file './EDMconfluence/supporthealthchecks.ibd' ERROR, InnoDB: The file './EDMconfluence/supporthealthchecks.ibd' already exists though the corresponding table did not exist in the InnoDB data dictionary. Have you moved InnoDB .ibd files around without using the SQL commands DISCARD TABLESPACE and IMPORT TABLE [truncated, 435 bytes total]

Diagnosis

Environment

  • MySQL DB server

Diagnostic Steps

  • Verify that charset/collation is correctly set on DB to "utf8/utf8_bin" or "utf8mb4 / utf8mb4_bin" (available in Confluence 7.3 and later) in accordance with Database Setup For MySQL.

  • Check if there is supporthealthchecks.ibd left on MySQL server with no corresponding *.frm file

  • Check that MySQL Server has the correct directory/file permissions to create new tables

Cause

A residual IBD file is left on /var/lib/ for support health checks, i.e. /var/lib/mysql/confluence/supporthealthchecks.ibd but there is no corresponding FRM file to accommodate it, so MySQL could not show the table.

MySQL does not have the correct directory/file system permissions to create the new table files on disk.

Solution

Resolution

  • Move supporthealthchecks.ibd file to another directory (do not delete)

  • Check and correct the MySQL data directory (SHOW VARIABLES WHERE Variable_Name="datadir") file permissions are correct for the Confluence Database

  • Restart Confluence

Updated on April 2, 2025

Still need help?

The Atlassian Community is here for you.