Unable to start Bamboo: Bamboo DB must use InnoDB table engine
This Knowledge Base article was written specifically for the Atlassian Server platform. Due to the Functional differences in Atlassian Cloud, the contents of this article cannot be applied to Atlassian Cloud applications.
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
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)
- Bamboo 5.10 or newer in combination with a MySQL database
To see which database engine is in use, connect to your Bamboo database in MySQL and run the following query:
SHOW TABLE STATUS;
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
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.
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.
- Shut down Bamboo
Update each table's engine using a query like
ALTER TABLE <table_name> ENGINE=InnoDB;
The following query will generate the required
ALTER TABLEstatements for each table in your database:
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;
Change the default storage engine for your database so new tables are created appropriately
SET GLOBAL storage_engine='InnoDB';
- Start Bamboo and the upgrade should complete successfully.