Page 2 of 2 FirstFirst 12
Results 16 to 24 of 24
  1. #16
    Join Date
    Apr 2012
    Posts
    2,179
    Points
    24,164
    Level
    67
    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

  2. The Following User Says Thank You to d2d4j For This Useful Post:

    dss

  3. #17
    Join Date
    Feb 2014
    Location
    USA
    Posts
    49
    Points
    1,829
    Level
    17
    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.
    Respectfully,

    Jeremy
    Devops is my life

  4. The Following User Says Thank You to cleverwise For This Useful Post:

    dss

  5. #18
    Join Date
    Feb 2014
    Location
    USA
    Posts
    49
    Points
    1,829
    Level
    17
    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.
    Respectfully,

    Jeremy
    Devops is my life

  6. The Following User Says Thank You to cleverwise For This Useful Post:

    dss

  7. #19
    Join Date
    May 2010
    Posts
    193
    Points
    8,360
    Level
    39
    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.

  8. #20
    Join Date
    Feb 2014
    Location
    USA
    Posts
    49
    Points
    1,829
    Level
    17
    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).
    Respectfully,

    Jeremy
    Devops is my life

  9. #21
    Join Date
    Feb 2014
    Location
    USA
    Posts
    49
    Points
    1,829
    Level
    17
    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! ;-)
    Respectfully,

    Jeremy
    Devops is my life

  10. #22
    Join Date
    Feb 2014
    Location
    USA
    Posts
    49
    Points
    1,829
    Level
    17
    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.
    Respectfully,

    Jeremy
    Devops is my life

  11. #23
    Join Date
    Aug 2014
    Posts
    1
    Points
    685
    Level
    9
    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

  12. #24
    Join Date
    Apr 2012
    Posts
    2,179
    Points
    24,164
    Level
    67
    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

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •