Unable to start Bamboo: Bamboo DB must use InnoDB table engine

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

Problem

After upgrading from a pre-5.10 version of Bamboo to a version at or above 5.10, Bamboo does not start up and the following appears in the catalina.out log

1 2 3 4 5 6 7 8 9 10 11 12 13 14 2016-04-29 13:14:44,550 FATAL [localhost-startStop-1] [DefaultBootstrapManager] Pre-bootstrap upgrade tasks failed com.atlassian.upgrade.UpgradeException: Pre-bootstrap validation tests failed: [Task for build 51012 failed:, Bamboo DB must use InnoDB table engine.] at com.atlassian.bamboo.setup.DefaultBootstrapManager.performPersistenceUpgrade(DefaultBootstrapManager.java:354) at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:77) at com.atlassian.bamboo.setup.BootstrapLoaderListener.contextInitialized(BootstrapLoaderListener.java:117) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Diagnosis

Environment

  • Bamboo 5.10 or newer in combination with a MySQL database

Diagnostic Steps

To see which database engine is in use, connect to your Bamboo database in MySQL and run the following query:

1 SHOW TABLE STATUS;

The Engine column from the output of this command will show the engine in use. If you see MyISAM in this column then this confirms that your MySQL database is using an unsupported engine

Cause

Bamboo requires that all tables in the Bamboo database use the InnoDB storage engine. In versions 5.10 and above this support is enforced and Bamboo will not start if it detects an unsupported engine in use.

Resolution

Update your database to set the storage engine to InnoDB

The resolution of this problem requires changes to the Bamboo database. Before applying the solution ensure you have full working backups of your database.

  1. Shut down Bamboo

  2. Update each table's engine using a query like ALTER TABLE <table_name> ENGINE=InnoDB;

    The following query will generate the required ALTER TABLE statements for each table in your database:

    1 2 3 4 5 6 7 8 SET @DATABASE_NAME = 'name_of_your_db'; SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements FROM information_schema.tables AS tb WHERE table_schema = @DATABASE_NAME AND `ENGINE` = 'MyISAM' AND `TABLE_TYPE` = 'BASE TABLE' ORDER BY table_name DESC;
  3. Change the default storage engine for your database so new tables are created appropriately

    1 SET GLOBAL storage_engine='InnoDB';
  4. Start Bamboo and the upgrade should complete successfully.

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.