Hacker News new | past | comments | ask | show | jobs | submit login
MySQL Editions (mysql.com)
198 points by haileys on Nov 4, 2010 | hide | past | favorite | 94 comments



Judging by the comments people are confused. The free, GPL edition of MySQL ("MySQL Community Server") is still what you've always had. These are the commercially licensed products. Oracle's shifted around some features and pricing on support plans and such, but if you're not a commercial customer, nothing's changed for you.


A confusion that could be mitigated by a less-inflammatory title.


What's the difference between community and commercial customers, aside from support? Is InnoDB a feature? Why would MyISAM support be free but InnoDB support have a yearly fee?


MySQL is dual-licensed. If you download the community server, it's GPL licensed. If you want to distribute MySQL as part of your application, then your application may have to be GPL licensed as well, which is often undesirable. ISVs and others that need to distribute MySQL can buy one of the commercial editions to get it under a non-GPL license.

If you're worried about the future, Oracle agreed to maintain the dual-licensing strategy until at least 2015 as part of the EU negotiations before acquiring Sun.


How exactly does distributing MySQL as part of your application make your application GPL as well? It's not a retorical question, can you please suggest a case? Unless you outright fork MySQL to make your own database, you can run and distribute it with your proprietary stack without being forced to license your code as GPL.

The FSF call it "mere aggregation": http://www.gnu.org/licenses/gpl-faq.html#MereAggregation


How exactly does distributing MySQL as part of your application make your application GPL as well?

It doesn't. The acceptance of the GPL (as of V2, haven't read V3) for a software component does not compel you to use any particular license for your own work. You can, by distributing the GPL'd work with you own non-open software, be in violation of the license on the GPL'd work, but the repercussion is a loss of the right to distribute the GPL'd work potentially enforced by injunction, and not an automatic change of your own license as the phrase "make your application GPL as well" implies.


Here we go with the amateur legal stuff, but until a more educated comment comes up, as far as I know, it is a question of the drivers being GPL, and coding up against the drivers crosses the threshold.


Not only that, but MySQL AB considered their network protocol to be GPL as well, and went after anyone who tried to make a clean-room implementation of it.

I don't know whether SUN and Oracle still pursue that strategy. Otherwise you could indeed bundle MySQL with some clean-room libraries to talk to the server.


>and went after anyone who tried to make a clean-room implementation of it.

That doesn't sound legal. You're allowed to clean-room implement anything aren't you?


The idea was that their network protocol was an original copyrighted work, and that any clean-room implementation of it would be a derived work.

That does indeed sound crazy, but they also had piles of cash to throw at lawyers to go after anyone who challenged them, and (maybe as a result of that) nobody ever made e.g. a clean-room BSD or LGPL licensed version of the mysql library. So it never made it to court AFAIK.


A nice fiction.

The reality is that copyright covers verbatim copying. If you read a book and write a review, the term "derived work" makes English sense, but not legal sense. Similarly, if you read the MySQL code looking for magic words to say to the server to get it to give you data, saying those words is not copyright infringement. It's "learning", not "copying".

If anyone used MySQL, I would write a BSD-licensed API just to prove a point. (And to be non-blocking.) But the world has moved on since the Oracle deal...


> Similarly, if you read the MySQL code looking for magic words to say to the server to get it to give you data, saying those words is not copyright infringement. It's "learning", not "copying".

What would happen, if the protocol would require sending a picture of a picture of Mickey Mouse with each request (or some copy-righted novel)?


That's been tested in court before, in Sega v. Accolade (http://en.wikipedia.org/wiki/Sega_v._Accolade). (You had to display a Sega logo before your game could run, so you had to have their logo in your code)

In short, it's fair use.


My understanding from the Wikipedia article you linked is that you just had to have the string SEGA in a specific spot on your ROM, and that the logo was in fact part of the Genesis III BIOS. A four-character string and an image are pretty different, copyright-wise.


You publish a benchmark that says how inefficient this makes MySQL, and then that "feature" goes away.


I was more concerned about the copyright repercussions on clean-room reverse engineering the protocol. Obviously the protocol includes copyrightable information, now.


To the best of my knowledge, the best answer is "nobody knows". There are some vaguely similar things in the precedents, especially when it comes to protocols that require you to use a particular patent to talk to a given device, and IIRC there is some verbiage in some places that distinguishes copying around for simple transmission reasons rather than delivery to an end user (though I can't imagine how to stretch that to cover this case), but in this particular case, nobody knows.

In fact if you spend much time thinking about this it isn't at all hard to come up with a lot of scenarios that law doesn't have an answer for, in theory or in practice.


Thanks!


That's incorrect, just check libdrizzle.


... a clean room implemented, BSD licensed MySQL client library.

I believe MySQL/Sun used to make a lot of money dual licensing the GPL client library. No longer!


Not only, but even reverse engineering of proprietary protocols from packets in transit is legal, IIUC.


Thanks, your answer is informative enough that I can google for more answers.


If my PHP connects to a mysql database on the same host, and I sell that host as a product, I need to release that php code?


If the PHP code is hosted on your server, you're not redistributing it, so the GPL doesn't affect you at all.

If you are redistributing it (you ship it to your customers and they deploy it on their servers) I would find a lawyer.


InnoDB is basically an ACID storage engine, whereas MyISAM is a storage engine that gives no guarantees about anything.



Ah ok, paying to get it under a non-GPL license makes sense.


Can anyone offer numbers on how many commercial clients MySQL has currently/had before Oracle bought SUN? I've never seen any numbers.

I also wonder how these pricing changes impact the already hurting community of open source developers supporting the community version.


Probably someone here can explain it to me:

It's clear that someone doing proprietary software on top of mysql have to get proprietary-compatible license for mysql.

But. How this happens, that community submitted code/patches/etc gives Oracle profits? Isn't including any patch/code from GPL version into Proprietary version automatically enforce GPL rules and makes impossible to include this software into any other proprietary software?

I saw this with other projects too. I am really interested how company behind product can provide both proprietary and gpl licenses for their products.


Still, MySQL is under GPL, InnoDB is under GPL.


Does anyone have ballpark numbers for what a non gpl encumbered mysql licence used to cost before this announcement? I assume Sun and/or Mysql ab used to offer a similar range of mysql based licences?


I'd negotiated licenses between $200 and $500 for their old basic offering (depending on volume). I've been punting on a switch to Postgres for the last few months, but they've forced my hand now.


Any particular reason you're not just using the community edition? Do you need the innodb features? (I'm asking because I've been wondering lately if I should make the switch...)


The fee is for the JDBC connector, not the db.. regardless of edition.. Bummer, that.


Does the introduction of MySQL without InnoDB mean they can also remove this from the community edition (and bug fixes) without getting into trouble with the EU? They still provide a dual licensing strategy with the same code base then.


The Community Server editions are still available.


Got confused until I read the legend at the bottom. Everything with a 1 next to it is commercial edition only. This does not include InnoDB thus, it's available in the community edition. Which is good, who uses MyISAM anyway?


maybe some people who want basic full text search capabilities but do not want to roll their own solution or use solr/sphinx whatever, I recall innodb did not support that?


Even the $10,000 cluster edition (which is based on NDB) is GPL.

So clearly they can not be selling software, I can only assume these are prices for support, not for software.

Have they taken down download links? Removed source code?


GPL doesn’t mean you can’t sell it; it means you have to provide source and allow derivative products within the constraints of the license.


Isn't that what I said? It's GPL, so why are people so worried that they are also selling it?

Edit: I guess I can see how you can read it in reverse from what I meant.


Isn't that what I said?

"Selling software" is distinct from "preventing others from selling copies of [said] software", and confusing the two is the source of much fear, uncertainty, and doubt about the GPL, so some people get a little defensive when they're conflated. When I ran a small software shop, most of the work I sold to small business was built on libraries and other works that were GPL, but this didn't prevent me from charging money for it, it just meant that I couldn't prevent them from selling or giving away copies themselves. Of course, few small businesses are interested in paying for software and then providing it to their competitors, so in practice that never mattered.


You are making the assumption that the GPL is appropriate for everyone that will use MySQL, which is incorrect. ISVs and other businesses that want to distribute MySQL as part of an application can buy it from Oracle with a non-GPL license so they don't have to GPL license what they're selling too.


Oracle has updated the page and clarified their lowest offering:

Embedded Database6

6 MySQL Classic Edition is not available as an Annual Subscription. ISVs, OEMs and VARs can purchase a license to use as an embedded database.


It's about time! All three specs of MySQL have been OP for too long.


You have got to admire the evil villany we're up against. Buying the 'M' in LAMP and then exploiting that position.

Business first, not the heart and minds of developers.

Luckily the 'L' + 'A' + 'P' cannot be bought.

LAPP stack anyone?


I take it the extra P is for PostgreSQL? As far as I could ever tell, the only advantage MySQL ever had over PostgreSQL 10 years ago is that it ran on Windows, and Postgres did not, back then. Oh, and by skipping ACID features, MySQL was faster.

So, back in the day, that drove me to conclude that all the MySQL fans were crazy, and I decided to use Postgres at home, since Windows != server, and having done quite enough XBase once upon a time, DB integrity had some value to me.

LAPP? Bring it!

Is the final P PHP, or Perl (which would be my preference)? Maybe make it an R for Ruby? :-)


LARP in that case... The parallels are eerie ;-)


Most Rubyists (I have no numbers for this, just a general sense of the community, I could be totally wrong, all generalizations are false, etc) use Nginx nowadays, so it'd be more like LNPR.


Most Rubyists also seem to be squarely in the NoSQL camp too, so try LNNR.


If you're going the "non-default" route of using postgresql you might as well ditch PHP.

Unless P=Python? :-)

LAMP is a loaded acronym which these days basically means "a web app built using FOS but not in Java or Ruby".


P always has stood for Perl/PHP/Python (in that order.. it came about back when Perl was more popular than PHP)


I am using the LNNMMMMP stack at the moment... Linux, nginx, node.js, memcached, MySQL, Mono, MongoDB and PHP.

Am I normal?


Even for a twitter recommendation engine, that's just a lot of moving parts.

I hope your development is driven by accurate profiling and benchmarks. It's much better to have a dirty, but very surgical fix in a specific bottle-neck, than to have your application "scaled" with too many layers of individually "optimized" components, that bog each other to a crawl when combined.


There are a lot of moving parts, but these are separate sub-systems with well defined boundaries of interaction. Each sub-system is implemented using technologies selected for specific characteristics.

Mono for long-running and complex backend processes.

nginx, PHP, MySQL, memcache - for presentation - quick!

node.js provides an event bus between PHP and Mono

MongoDB is taking over from storing large blobs of JSON in MySQL.


Makes sense.

I was on the opposite side of things, when I did we last. I had language integrated into the web server, and I wrote my own caching primitives. All optimization went into the request handler, and optimizing a single function is easier than debugging a whole stack.

A decent solution, but it had no massive inputs, so I slept better at night knowing it wasn't being tested.


No. You, sir, are not normal. I'd love to know what sort of evil hackery you're cooking with that setup, though.


I'm cooking up a Twitter Recommendation Engine for users, hashtags, and links etc.

For example: http://tagwalk.com/tag/MySQL


Played with it a bit. I like it :D


Thanks!


I am in the same boat, though not with your exact setup. It's easy to acrue alot of individual components, especially if you are a tinkerer, when developing a non-trivial application.

rails, sinatra, mysql, resque, custom email server (looking for a name...), memcached.

How the heck do you mix in mono?!?


nginx ftw


I've been using BNPP (*BSD, nginx, PostgreSQL, Python) for a while now, works like a charm :)


Remove M for MySQL in LAMP and make it M for MongoDB


If your engineering problems are solved with a little phonetic consistency, you might as well rename a real database "Mostgres" and be done with.


mongo is still a joke for most applications


Your kidding right? It has a time and a place, and can pretty "easily" be substituted for mysql/etc in most applications. We just put together a really fun project, a very vanilla community news aggregator aimed at cyclists. Took two days of core coding and another day or two playing around with styling/functionality, but mongo was a fantastic fit. http://veloscoop.com

[edit] I mis-clicked and upvoted you when I meant to downvote. Incendiary statements about valuable technology has no purpose here.


Some people are capitalizing on this: http://news.ycombinator.com/item?id=1866064


Somebody please fork mysql and get rid of oracle once and for all.

I bet the whole community will support the new sql.


There are several MySQL forks, have been for years. Most notably: Drizzle, MariaDB, Percona MySQL. There are many others.

I don't see anyone rushing to abandon mainline MySQL for the forks.


Percona's is probably the closest to the MySQL people are looking for; Percona is the premier MySQL consultancy, and they've patched the codebase for performance, etc.


From Monty's presentation about MariaDB, http://www.youtube.com/watch?v=AL1l9Puh0sk I got the impression that MariaDB is the primary open MySQL fork, with Percona merging their patches and becoming a downstream of MariaDB. Did MariaDB and Percona have a falling out in recent months?


We could call it MinesSQL.


nice, perhaps youSQL, uSQL, SqlME, a name is really important for a project to take off.


[deleted]


How is this different than before? MySQL was always a dual-license product. You can use the product if you comply with the terms of the GPL, or purchase a commercial license to get priority features, priority support, and get around the GPL terms. This is the same business model that MySQL AB and Sun have used for the last decade.


Wow, yeah hello PostgreSQL


I think the reason you are being downvoted is that you are comparing PostgreSQL with the commercial version of MySQL. A better comparison would be between EnterpriseDB and the commercial version of MySQL.


Afaik, the free version of MySQL doesn't let you do a live transaction-safe database dump of InnoDB tables.

A pretty basic feature I thought, which is included in the free version of PostgreSQL.


Well you can almost get there (completely if you're not changing schemas):

mysqldump --single-transaction

This option sends a START TRANSACTION SQL statement to the server before dumping data. It is useful only with transactional tables such as InnoDB, because then it dumps the consistent state of the database at the time when BEGIN was issued without blocking any applications.


Unfortunately, mysql still doesn't have transactional DDL, I believe...


Nor does Oracle, for what it's worth.


This is incorrect. You can use XtraBackup for this which is an open source alternative to innodb hot backup. Alternately you can quickly lock tables and take a filesystem snapshot or even run mysqldump with --single-transaction all which will let you get a consistent dump of a set of InnoDB tables.


Ah yes, my mistake.


Yeah, and also Drizzle, MariaDB and Percona Server.


Drizzle probably is the future of "mysql in the cloud", but it's not quite there yet.


It's certainly not worse than Oracle MySQL...


I guess it's mainly this mindset of something must have years of testing or it's not really ACID compliant. Drizzle works fantastic, however there needs to be more drivers written to take advantage of it (and it's asynchronous facilities, especially for the Node.JS people).

If you're not familiar with Drizzle, it's MySQL that has a bunch of crap you'll never use stripped out.


> something must have years of testing or it's not really ACID compliant

Can't really grasp that. Drizzle is MySQL minus cruft... Its parts have been extensively tested for many years.


So now Workbench costs $2000?


No, the MySQL Workbench Community Edition is still GPL and free.


Well, don't imagine anyone's too terribly surprised by this.

Time to start boning back up of Postgres, I guess.


Well, fuck. InnoDB is now a premium feature. So long, ACID compliance?

Edit “Classic Edition” — what a cop-out name. It should be “Crippled edition.”


Just to be clear, "Classic Edition" is not the free open-source MySQL that we all know and love. It's a separate product for inclusion in other proprietary products. MySQL has always been a dual-license product, and this is similar to previous offerings by MySQL AB and Sun.

The "N/A" price probably just means "contact us so our sales team can squeeze you for all you're worth" -- which is how enterprise software deals typically work.


I'm glad I read the comments. I had the same knee-jerk reaction as above. Glad to know I'm still safe :)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: