Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-52792

Upgrading from MySQL 5.6 to 5.7 on Confluence 6.3 causes Unknown system variable 'storage_engine' Error

    XMLWordPrintable

Details

    Description

      Summary

      Running Confluence 6.3 and upgrading from MySQL 5.6 to 5.7 will cause the following error disallowing Confluence to start

      java.sql.SQLException: Unknown system variable 'storage_engine'
      

      Environment

      • Linux
      • MySQL 5.6
      • MySQL 5.7

      Steps to Reproduce

      1. Install Confluence 6.2.3 against MySQL 5.6. Note to leave the connection URL with the sessionVariable parameter
      2. Upgrade to Confluence 6.3
      3. Upgrade MySQL to 5.7 in place or through a dump/import. Again noting to leave the connection URL with the sessionVariable parameter

      Theoretically a faster way to reproduce this would be to start Confluence 6.3 against MySQL 5.7 with a sessionVariable parameter in place. The above is intended to reproduce the upgrade flow admins will proceed with

      Expected Results

      Confluence starts up correctly connected to MySQL 5.7

      Actual Results

      Confluence fails to start, and the below exception is thrown:

      2017-07-07 14:03:18,634 WARN [C3P0PooledConnectionPoolManager[identityToken->z8kfsx9p8k5ul21q6rg1z|5ca418bc]-HelperThread-#1] [mchange.v2.resourcepool.BasicResourcePool] log Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@45c5dcf5 is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests.
      2017-07-07 14:03:18,634 WARN [C3P0PooledConnectionPoolManager[identityToken->z8kfsx9p8k5ul21q6rg1z|5ca418bc]-HelperThread-#2] [mchange.v2.resourcepool.BasicResourcePool] log com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@6b4b037e -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
      java.sql.SQLException: Unknown system variable 'storage_engine'
      

      Notes

      This will trigger in practise due to the sessionVariable parameter being applied by default by the Confluence installer when initially running MySQL 5.6 and then leaving the parameter in the confluence.cfg.xml file when upgrading to MySQL 5.7

      Workaround

      1. Back up your confluence.cfg.xml file
      2. Edit your database connection URL to remove sessionVariables=storage_engine%3DInnoDB. See example below for more details
      3. Start up Confluence

      Example:

      The following connection URL in confluence.cfg.xml needs to change from this:
      jdbc:mysql://localhost:3306/confluence_db?sessionVariables=storage_engine%3DInnoDB
      to this:
      jdbc:mysql://localhost:3306/confluence_db

      Attachments

        Issue Links

          Activity

            People

              ttranminh Tam Tran
              mandreacchio Michael Andreacchio
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: