End of Life of MySQL Support

Hi all,

Starting with SonarQube v7.9 we will no longer support MySQL with any edition of SonarQube. A few months ago, starting with the SonarQube 6.7.x LTS, we took two steps to ensure customer success. First, we stopped MySQL support for DCE deployments. Additionally, we began recommending PostgreSQL (Postgres) for all commercial environments, especially deployments with large instances or ones that could become large over time. These actions have resulted in a significant reduction in the number of large deployment issues reported by our community.

The reasons for no longer supporting MySQL are straightforward. At SonarSource, we target operational excellence with our products and we do not want our users to face scaling issues as their dataset grows over time. To that end, the following considerations guided our decision:

  • We want SonarQube to scale and provide very good performance to our users
  • In our experiences with the 7.x releases of SonarQube, along with knowledge gained building out SonarCloud, we observed that SonarQube can be engineered to run faster and scale better, but it requires significant, focused development in the specific database platform.
  • While we do have the internal competencies and bandwidth to accomplish this for Postgres, Microsoft SQL Server and Oracle; it would be a significant challenge for us to achieve this for MySQL.
  • We decided to focus on product excellence and that requires us to end MySQL support in order to bring our Community a SonarQube offering that provides a consistent user experience.

Ultimately, we feel that taking this step now results in the best, long-term success for our users and without compromising future SonarQube features and functionality. We didn’t make this decision lightly and spent considerable time evaluating all the factors involved. We understand migrating to another database involves time and effort so we’re here to provide the help and tools to make your migration successful.

Starting with SonarQube 7.9, we’ll support Oracle, Microsoft SQL Server and PostgreSQL. Postgres is free and open-source while Oracle and Microsoft do charge for their tools. We’re investing resources into PostgreSQL to ensure our users experience SonarQube compatibility with a high level of performance on a free-to-use database.

We created an open-source tool to help you move data from MySQL to one of the other supported databases. This dedicated tool helps SonarQube users that are on version [6.7 LTS - 7.8] to move their instance out of MySQL to a supported database. Get the migration details here.


Thanks for creating the detailed guide.
If we are using a commercial edition, will it be necessary to request a new license, as obviously the JDBC URL will change?

You know the main DBMS for Wikipedia is MySQL? The fifth most visited website on earth scales using MySQL.

1 Like

Hi Deyan and thanks for your patience,

You’re right, you need to request a new license as the JDBC URL change.

What is the impact to start using sonarqube 7.9 on a new empty database ?
Can say that i find the documentation for database migration tool complete by the way.

Hi @andgru,

If you’re starting from an empty DB then there’s no impact at all. Just don’t pick MySQL.


1 Like

You’re Not Alone Anymore :
GitLab: Why we’re ending support for MySQL in 12.1


Is it possible to upgrade/db conversion from 6.7.7 to 7.9.X (latest LTS version) with postgresql when the database is currently MySQL or do you need to upgrade to 7.8 + MySQL first, then do db conversion/upgrade to 7.9 + postgresql?

Hi @bschleiger,

Welcome to the community. I’ve moved your topic here from the 7.9 announcement, since it has a higher affinity with this topic.

The OP in this thread includes this:

So to answer your question, you can migrate DBs on 6.7, then jump to 7.9(.1) or you can move to 7.8 on MySQL, migrate DBs, and then upgrade to 7.9.1. Since there are fewer steps in the first scenario it seems like it would be easiest to handle the DB upgrade first.


1 Like

If I’m migrating a 7.8 installation from MySQL to Oracle, do I really need to do a separate 7.9 deployment towards Oracle first (as the documentation hints, but does not state) or can I migrate into an empty Oracle schema?

You will need to start up a 7.8 instance aginst Oracle to populate the schema, and then initiate the migration using mysql-migrator, and then upgrade to 7.9