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.
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.
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.
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.
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)
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.
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.
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.
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...)
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.
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?
"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.
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? :-)
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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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.