Announcement

Collapse
No announcement yet.

Should I buy mysql licence?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • dss
    started a topic Should I buy mysql licence?

    Should I buy mysql licence?

    Hello,

    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,
    Adam

  • d2d4j
    replied
    Hi pranav

    Welcome to interworx forums.

    It's really upto each person to decide, but I would think you would need to look at education licence sections to answer your question, as long as you do not use education licence in a commercial environment, or for commercial products, in which case, you would need to review commercial licence.

    I hope that helps

    Many thanks

    John

    Leave a comment:


  • pranav_badheka
    replied
    Hi Friend,

    I am from India, i have a computer class, where i teach MySQL at very elementary level, so do i need to Buy any such licence for Teaching MySQL.


    Regards,


    Pranav

    Leave a comment:


  • cleverwise
    replied
    I failed to mention an important point earlier that isn't related to licensing.

    Let's say this application is successful enough that you have 1,000 people using it. You could have a big problem on your hands with connections. The original way you have mentioned your application is designed is each individual client computer has to make a connection to the your database server (hence the MySQL connector issue). MySQL or not that isn't a good idea.

    Not only do you risk flooding your database server (MySQL, Postgre, Oracle, MSSQL) you now have to allow remote connections from unknown IPs (your client's computers). From a security standpoint that is not a good idea. From a performance stand point that is not a good idea. Plus keep in mind IW does not scale MySQL. It clusters Apache but not your database calls. Now imagine 5,000 or 10,000 client connections. Yikes!

    All this makes for solid reasons you should be passing off SQL statements to your own server(s) and then passing back the data to your clients.

    You could run multiple IW's and thus multiple MySQL servers so that each block of say 500 clients connects to a different server but that isn't as optimize as it could be. Plus you still have security risks.

    Also keep in mind no database can accept unlimited tables or unlimited databases. At first it won't be an issue but often it is easier to roadmap a plan for growth even if it changes over time rather than end up with a nightmare setup.

    Leave a comment:


  • cleverwise
    replied
    I'll follow this up with the example of Facebook. Facebook runs custom code (their Facebook framework) and they don't have to buy a license because they don't pass out their Facebook code embedded with the MySQL server or MySQL client. But wait... when you download the Android App it is talking to Facebook, which is closed source. True but the app isn't installing a MySQL connector on say a Samsung Galaxy S4. The Facebook app (closed source) talks to a Facebook server (well really many) which in turns talks to MySQL. So in the end its Facebook's own equipment talking to MySQL and not an user's Samsung Galaxy S4. Go Nexus! (Sorry my choice of smartphones got the best of me! ;-)

    Leave a comment:


  • cleverwise
    replied
    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).

    Leave a comment:


  • dss
    replied
    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.

    Leave a comment:


  • cleverwise
    replied
    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.

    Leave a comment:


  • cleverwise
    replied
    If you include the MySQL connector from http://dev.mysql.com/downloads/connector/net/ 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.

    Leave a comment:


  • d2d4j
    replied
    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

    John

    Leave a comment:


  • dss
    replied
    So what do you recommend? Should I buy connector from a diffenrent vendor instead of this: http://dev.mysql.com/downloads/connector/net/?

    To John:
    You can understand now, why I have asked this question :) This situation is everywhere where I read.
    Last edited by dss; 02-20-2014, 02:14 PM.

    Leave a comment:


  • d2d4j
    replied
    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

    Jobn

    Leave a comment:


  • cleverwise
    replied
    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.

    http://www.mysql.com/about/legal/licensing/oem/

    Leave a comment:


  • d2d4j
    replied
    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

    John

    Leave a comment:


  • dss
    replied
    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 mysql.data.dll file (downloaded from mysql.com)? 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.

    Leave a comment:

Working...
X