Ive been developing a commercial management application for windows in Qt, and im using MySQL as my default DB system. I have a setup file that installs both my software + MySQL on my client's machine (my clients cant seem to know how to install MySQL on their own), it simply copies all the required files (including MySQL's already extracted and shrunk & cleaned files).
But i was wondering about the licensing issue here.
My clients are free to use their own MySQL installation of course, or to change the version or anything, but my software includes a default MySQL installation if none was found.
I did some asking around and was told that as long as i mention what database is used, and give the user the freedom to install his own version and use libMySQL.dll instead of embedding it, than there is nothing wrong with including the MySQL installation with my setup.
PS: SQLite isnt an option because the app can host connections from different clients on the same network and it just doesnt work well with my app + i tried Firebird too and it caused a lot issues.

So the question is, is it okay to include MySQL's installation with my setup ?

Thank you

1 Answer 1


It is perfectly fine to include the MySQL server in your installer – assuming this is the GPL-covered version, and not a proprietary licensed version from Oracle. The GPL allows you to aggregate the GPL-covered MySQL software alongside your proprietary software.

But you still have to follow the requirements of the GPL. This includes:

  • giving users a copy of the license
  • giving users a copy of the source code of the GPL-covered software (!)
  • you must not restrict the user's exercise of their rights under the GPL, for example they should not have to agree to your licensing terms in order to install the GPL-covered software via your installer. Prefer a separate installer.

Most importantly, your software must be clearly separate from the GPL-covered software. Using separate executables is necessary, using a separate DLL is not enough. Do not confuse guidance that is about the LGPL with your requirements due to the GPL. The LGPL license would give you extra flexibility when using DLLs, but it does not apply here.

Aside from the MySQL server, you should also consider the licensing

  • of the MySQL connector
  • of the Qt libraries

These are necessarily part of your software. If these are subject to the GPL, you would have to open source your software as well. If you cannot do that, you may have to acquire commercial licenses, or migrate to different libraries. The official MySQL connector is only available under the GPL, which doesn't work for you. Most of Qt is under LGPL which lets you use it from proprietary code (under some requirements), but some modules may be GPLv3 only.

  • Thank you for the detailed answer, ive checked Qt's licensing and made suure to only use modules licensed under LGPL (from Qt's Licensing page), as for MySQL's connector, would it still be an issue, if i make an installer that asks the user's permission to download both the Connector + MySQL server from oracle ?
    – RedZ
    Commented May 21, 2019 at 19:37
  • Note that my software is actually free, there is no time limitation or anything, but if the user wanted to use all of its functionality (the trial version doesnt allow more than 10 items on the DB), they can contact me and i send them an activation key, which removes the 10-items limitation.
    – RedZ
    Commented May 21, 2019 at 19:41
  • 1
    @Zylva if your software includes a GPL library you have to publish your software under the GPL (or a compatible license) as well. Free/gratis is not enough: open source is required. You cannot circumvent this by downloading the GPL component on the user's computer. You may have to buy a proprietary license from Oracle. Tip: other databases are available under more permissive licenses. The open source community prefers PostgreSQL.
    – amon
    Commented May 21, 2019 at 19:49
  • alright i will take a look at PostgreSQL
    – RedZ
    Commented May 21, 2019 at 19:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.