Should I buy mysql licence?


I am working on a service uses mysql database on interworx servers. It is a desktop application which communicates with the server (upload-download files and write entries to database). The desktop software is not open source. For the software I give a homepage under a subdomain which is written in php and also uses mysql.

What do you think should I buy commercial licence for mysql?

Best regards,

Hi dss

Good luck in your project, I hope it goes well for you and I would not mind knowing a little more about it but I understand you may prefer not too.

My personal thoughts after a little thinking about your post, but please understand it us my personal thought and not necessary correct, I think if your MySQL been used all the time is on your server, and not included in your app, then you may not need to purchase a licence, however, if you include a MySQL in your download app, then you must purchase a licence.

If you do need to purchase a licence, I would probably opt for an OEM licence.

I hope that helps a little and look forward to other user views, but apologise if I’m wrong.

Many thanks


Hi John,

Thank you for your answer! I have the same opinion, but the internet is totally full with different opinions :slight_smile: I read somewhere that somebody asked 3 lawyers and all of them had different opinion :smiley:

Of course I have to use another .NET connector for the application instead of MySQL’s Connector.NET and I found this great tool:

So the problem on the client side may be solved. Now I am trying to install and configure PostgreSQL on my dev server but it’s not supported by InterWorx and I don’t want to change the CP. (This could be a hidden feature request! :))

If somebody has opinion please tell me!

Good luck in your project, I hope it goes well for you and I would not mind knowing a little more about it but I understand you may prefer not too.

It’s a small cloud service. Our users can upload files to our server with a client software and download them on a homepage (subdomain). The client software write the file details to the databse wich contains user details too.

They don’t have access directly to the server over SFTP. They are using sql on the homepage, like on a normal shared hosting, printing file names and identify the users.

In the uploader program we will use Devart’s dotConnect for MySQL so we won’t redistribute any MySQL library. The customers will pay for the storage space, not for the homepage and software like in general hosting business.

As John wrote, mysql will be used all the time on our server and the client software will use third party mysql connector.
dotConnect for MySQL

dotConnect for MySQL

Hi dss

Sounds good, I wish you all the best

After reading your posts, I’m fairly confident that it does not require a licence itself, as your not including MySQL in app.

I think you would not have this dilemma if you did not include the app for the users, ie if you had an upload page on website to upload with no app, but I could be wrong sorry.

To give you an instance in a smaller site, you can install piwigo, which uses MySQL and install mobile app to directly upload pics, which I don’t think they have purchased a commercial licence, albeit it opensource so maybe a example sorry, however, that said, the software is free to download/install but an end user could charge monies for its use, which this makes it a good example, I hope.

I hope that helps and looking forward to other users opinions

Many thanks


Hi John,

Thank you John! As I read your reply I think our opinions are the same (I hope we are right :)). How do you think “not including MySQL in app”? Don’t use MySQL’s (Oracle’s) libraries or don’t use SQL queries in the application?

Unfortunately the upload software is required because of the very big files and the real time file encryption during the upload.

I had a look to MySQL’s homepage, and as I understand I only have to buy commercial licence If I’m using libraries from them embedded in my application (for example their mysql connector). Because of this I am using the previously mentioned 3rd party library.

Hi Dss

I know it’s confusing, but less so then Microsoft licencing, and MySQL is far cheaper then MsSQL, which they now changed a while ago to per core from per proc.

I have had a quick further look, and I’m thinking now you may be out of luck, as their licence specs cover connections to MySQL as well, from non GPL or commercial products (unless I am getting confused sorry).

I myself, may think if possible, to opensource your software (this does not mean your software maybe free, only the source code is made available under GPL) and save yourself monies, other then that, you have to licence the server I’m thinking sorry.

Also, further reading may suggest you might be able to use the php connector, but I’m not too sure if this more work then it needs and may not work for you.

I hope that helps a little but I would be interested to know other user opnions

Many thanks


However, if you develop and sell a commercial program but do not deliver it together with MySQL and leave the installation of the MySQL server and its licensing to the customer, then you must obtain licenses for the client libraries used in your program.
Explicit licensing of the client library is seen by the MySQL company as an exception, since as a rule, the server is licensed. Commercial licensing of the client library actually represents nothing other than a protection of the MySQL company’s commercial interests. They want to avoid the situation in which commercial developers get around having to obtain a commercial license simply by not providing the MySQL server. The customer then loads the GPL version of the MySQL server from the Internet and believes that all is right with the world. In such a case the MySQL company would receive nothing for the development of a commercial MySQL product.
Client Licenses for the PHP Project, F(L)OSS Exception
Since MySQL 4.0, the GPL license for client libraries has led to problems with some other open source projects. For example, the PHP project is not subordinate to GPL, but to another open source license that is considerably more liberal and contains fewer restrictions for commercial applications. If PHP were to provide the MySQL client library under GPL, the GPL would have to hold for the entire PHP project. PHP developers were not agreeable to this. MySQL therefore defined an exception that permitted the PHP project to make the MySQL client library part of PHP.
For other open source projects that do not use the GPL license, MySQL has defined the FLOSS or FOSS license exception. FLOSS stands for Free/Libre and Open Source Software. (On the MySQL Web site the exception is often abbreviated FOSS.) Open source projects that exist under a license that is part of the FOSS exception are permitted to integrate the MySQL client library into their code without the GPL restrictions coming into play. Further details on these license exceptions can be found here:

Please see link for full article and

Hi dss

I hope you don’t mind, but again thinking about the upload part, and I apologise as I have no knowledge of your software, but it seems similar to some of our clients sites, but might it be simpler to have a webpage upload function instead.

As I said, some of our clients have this, and do upload files at around 1gb or larger, using https etc and it uses MySQL db.

It’s just a thought sorry

Many thanks


Hi John,

Thank you very much! It not the best news :frowning:

I think in the state of my application and website it is easier to migrate everything to postgresql. I don’t need professional management for it just possibility to create databases, I can do it with pgAdmin on my desktop computer. I installed pgsql to my dev vps and it is very ease to move data to there. It looks like nothing special needed, I think it will work next to InterWorx. So the domain, emails will be managed with InterWorx but in the background will run pgsql.

Unless I am misunderstanding your project you don’t need a license. You are free to develop applications that use MySQL. So unless you are actually distributing MySQL in your application a license isn’t necessary. If your application talks to MySQL and is run off your hardware that doesn’t mean you need a license either because you aren’t sending them MySQL. You are just providing an interface to MySQL.

For example one can download PHPBB or Wordpress and those entities don’t need MySQL licenses as they aren’t distributing MySQL. It sounds like it is your database the application is talking to. Now you don’t get support from Oracle or the more advanced features without a license. However personally I think Percona is better for that anyway.

Dear Jeremy,

I’m trying to summarize:

I’m developing a software and a page for sharing files. The application connects to my InterWorx server and uses MySQL databases under a domain to store details about the files and the users. The page is using that database (print the file details, identify the users, store system messages, etc.) written in php.

What is “distributing MySQL” exactly meaning? For example MySQL databases are requirements to use the software? The desktop application uses a connector to connect to the server.

Is it allowed to install to our customer’s computer for example the file (downloaded from What if I use connector from a third party developer (for example Devart’s dotConnector)?

Our customer’s going to buy monthy price so it’s not a free service and the source codes couldn’t be open!

Because it’s a starting project I don’t want to pay a lot for license while it is possible to migrate easily to other database engine. But IW supports only MySQL and I don’t want to change it. I’m now testing PostgreSQL next to IW, it looks like everything is fine.

Hi Dss and Jeremy

I hope you don’t mind but I am still thinking a licence is required sorry. I understand the points raised by Jeremy, but to be honest, the examples listed use php and not .netconnectors, but I could be wrong, and I still am wary of this sentence:

In such a case the MySQL company would receive nothing for the development of a commercial MySQL product.

I suppose the only real answer would be if it ever went to a court, where a judgment could then be made, but I doubt it would ever reach that stage myself.

I’m sorry if I am confusing it more though

Many thanks


The question of licensing commercially is whether you are sending the MySQL server to your clients.

If for example I develop an application that uses MySQL in the application. Clients download that application and install it on their machines and during the install MySQL itself is actually installed then that is a case for licensing (usually the embedded license). However if a client downloads an application that connects to a MySQL server but they are NOT installing MySQL itself on their computer that is different.

In this case licensing MySQL comes down to are you embedding MySQL server into your application? It doesn’t sound like it to me. It sounds like you have connectors to MySQL. It would be like having a chat server running off MySQL. Your clients download your chat client that simply connects to MySQL but you are the one with the MySQL server not them.

The ONLY question is the connector you are using as that might be a commercial issue. From Oracle: “Oracle provides its MySQL database server and MySQL Client Libraries under a dual license model designed to meet the development and distribution needs of both commercial distributors (such as OEMs, ISVs and VARs) and open source projects.”

You aren’t distributing the “MySQL database server” as you are running the database server not your clients.

Hi Jeremy

Many thanks, but to me it’s still not clear sorry.

As dss is not open source, and will be providing a connector other then php, does it need to be licenced.

As I understand it, if it’s not open source, and supplies part of the library, it needs licensing, but this is only my thoughts, and thankfully I’ve not had to answer this question for myself, and as dss has already posted, 4 different lawyers had different thoughts.

Once again I’m sorry if I am confusing matters further and I will refrain from posting on this topic, to stop any more confusion been caused, but your answer to me has not fully confirmed if it needs a lincence sorry.

Many thanks


So what do you recommend? Should I buy connector from a diffenrent vendor instead of this:

To John:
You can understand now, why I have asked this question :slight_smile: This situation is everywhere where I read.

Hi dss

Yes, I know and it’s a shame there’s no clear definition ie black and white

I also know at the end of the day, it’s really upto you to decide, as it’s you who may face the consequence and not any opinion expressed anywhere on the Internet. So it’s a tough choice.

I wish you good luck and hopefully some more users may express their thoughts, to see where any common thoughts lie.

Many thanks


If you include the MySQL connector from the bottom line is yes you must because you are distributing MySQL software in a closed source project. In otherwords you have files straight from MySQL included in the code downloaded and installed by clients in your is closed source. It even mentions this straight on the page above.

So you have a few choices here:

  1. Buy a license.

  2. Make your connector code a module or extension or something and open source it. To be safe put it on your website with some instructions, to other developers, on how to use it. I am not an attorney but that looks like it would satisfy the license. Closed source, obviously, can make use of open source software and if your connector code is open sourced under the GPL you are then just making use of open source code. So the closed source part isn’t the connector code but your unique application code.

  3. Change your code so that the MySQL connector isn’t included in the downloaded software. For example when talking to the database the program is really just loading a webpage and that is what is talking to MySQL (hence no connector is downloaded and installed on the client computer). This is what a lot of mobile apps do. A lot of apps for Android and iOS are really just web browsers with out all the standard browser buttons.

  4. Use another database, although most are limited like MSSQL.

Obviously it is your call, as John has said. However I think the safest course of action if you want to stick with MySQL is either open sourcing your connector code or reworking your application so that all MySQL connections are done off your server and not in the application itself. You can pass off MySQL talk to your server for processing all the SQL queries and connections.

OK, thank you! So don’t use MySQL’s connector in this case. And what about the third-party connectors? We are thinking on PostgreSQL too, it’s free and easy to migrate and use.

That would depend on the licensing of the third party connector and if they are using coding straight from MySQL.

Is there no easy way to modify your code to pass SQL statements off to your server in the background, thus removing the need for a client installed connector? Why not develop a class file or function call that builds statements then sends them via a https call (xml, json, etc payload) to your server that runs it in the background then sends the raw information back to your local client application for processing.

SQL queries aren’t protected or licensed but rather the server and connector. So having your client app build the query then connect securely to your MySQL wrapper, on your server, solves any local MySQL code being installed. Thus no licensing. Many people think closed code on their own systems means they need a license. It is only when closed source is being installed on systems not owned by you that contain files from Oracle (MySQL) that you need a license. You can run your own code all day long on your own systems without a license. You just can’t close your code and pass it out (free or not).