Slashdot Mirror


MySQL Writes Exception for PHP in License

ryanjensen writes "According to an article on News.com, MySQL wrote an exception into its license to allow PHP to use its libraries. From the article: 'Because MySQL owns copyright to all the MySQL code, it can include additional license provisions to its software. The new provision, called the Free and Open Source Software License Exception, enables people to use MySQL client libraries with other open-source projects under other open-source licenses other than the GPL.'"

95 of 313 comments (clear)

  1. A response to X? by TwistedSpring · · Score: 5, Insightful

    This is good news for all those PHP kids out there. It is nice to see some licenses being made specifically more lenient, and I don't doubt this has had something to do with the recent change in the XFree86 license and how people reacted to that. Well done MySQL, your domination is secured :)

    1. Re:A response to X? by /ASCII · · Score: 4, Interesting
      How is that not GPL-compatible?

      The GPL does not permit you to distribute GPL:ed code together with a prorietary product. If you want to do this, you obviously cannot use the GPL:ed version of MySQL, so this is not a restriction as much as a clarification.

      If you do want to distribute MySQL with your OS, you can simply buy a copy of MySQL under a different license, which obviously MySQL AB can provide since they are the copyright holders of the code and can relicense it as they see fit.

      --
      Try out fish, the friendly interactive shell.
    2. Re:A response to X? by LostCluster · · Score: 5, Informative

      The copyright holder of a product that is released under the GPL is not required to use the GPL as the only license. It's hard to attach a license more restrictive than the GPL to already GPLed software, but it's very easy to attach a less restrictive license.

      The copyright holder can also craft exceptions to the GPL simply by making an add-on license that promises a certain violation of their GPL rights will be tolerated, and that includes a situation under which distribution without the GPL is allowed. :)

    3. Re:A response to X? by Homology · · Score: 2, Insightful
      The GPL does not permit you to distribute GPL:ed code together with a prorietary product. If you want to do this, you obviously cannot use the GPL:ed version of MySQL, so this is not a restriction as much as a clarification.

      What are you talking about? And the moderatores are modding this as +5 Insightful/Interesting. Jeez.

    4. Re:A response to X? by /ASCII · · Score: 2, Insightful

      Ok, given the tone, the grammar and the use of words you don't understand in your post, you are probably a troll, but I've seen a lot of non-idiots make the same claim so I'll reply:

      Basically, you're wrong.

      This is a quote from the LGPL:

      When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom.

      In other words, if you compile a GPL:ed program on a proprietary operating system, all the operating systems base libraries must be GPLed or you may not distribute it. So you can't distribute the GPLed MySQL with Solaris or Windows without GPLing the entire system. That is why we also have the LGPL.

      --
      Try out fish, the friendly interactive shell.
    5. Re:A response to X? by sqlrob · · Score: 3, Informative

      Yes, read the fucking gpl.

      The libraries for MySQL are GPL *NOT* LGPL. Anything linking those in must therefore be GPL compatible. I don't see the point of including MySQL if you can't say, oh, link the libraries to let your code put data in tables.

      It has the same issues as QT.

    6. Re:A response to X? by /ASCII · · Score: 3, Informative

      Already explained this in this post.

      The LGPL states that:

      "When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom."

      Which is pretty much what I said...

      --
      Try out fish, the friendly interactive shell.
    7. Re:A response to X? by /ASCII · · Score: 2, Insightful

      Both MySQL and Postgres use the SQL language. Rewriting an application to use one instead of the other in a well-designed application simply means changing the database driver. So if you've rewritten applications from scratch because they use MySQL, you've been wasting a LOT of time.

      --
      Try out fish, the friendly interactive shell.
    8. Re:A response to X? by E_elven · · Score: 2, Interesting

      MySQL does not (although the obscure fbn builds are a bit better nowadays) implement SQL properly and is not ACID compliant. Many developers have had to rely on hacks to get their stuff working -or then have written bad code because MySQL allowed it. This is why some things need more extensive rewriting. In addition, I believe there are some proprietary products that use MySQL -to achieve the same effect, one would need to write a program from scratch, presumably.

      --
      Marxist evolution is just N generations away!
    9. Re:A response to X? by sydb · · Score: 2, Informative

      That is not what you said at all. You said distribute together, not link. These acts are worlds apart.

      I'm surprised that a 5-digit UID should exhibit 2-digit IQ.

      --
      Yours Sincerely, Michael.
    10. Re:A response to X? by Homology · · Score: 2, Informative
      That is not what you said, and your other post in response to the AC clearly shows that you do not understand difference between distributing a program versus linking with respect to GPL license compliance.

      It is entirely within the GPL license for me to distribute a GPL program along with my propertiary application and don't open source my application, as long as I don't link with it. So how do I communicate with said GPL program? I can use TCP/IP, sockets, or even plain old text files.

    11. Re:A response to X? by jallen02 · · Score: 3, Insightful

      Sorry, I don't buy it. Even with the SQL hacks in any application of even moderate size you can hide your data layer from your application well enough that you would still only be rewriting the data access layer of your app. That is what abstraction is all about.

      I know that you will invariable have to optimize for your current DB platform to take advantage of unique optimizations and features of that platform, but that still does not mean you can't do it in a way that keeps all of the optimization details hidden from the rest of the system. This is true in almost all cases where you are using a SQL server as your data storage layer.

      Trivial apps will often not even bother with abstraction. It just seems silly to me given the handy abstraction tools via PEAR and Native libraries in PHP that anyone would not use them in a new project (versus the native calls). The only reasons (performance reasons) can still be architected away with just a little extra effort and some careful planning.

      Jeremy

    12. Re:A response to X? by Bromrrrrr · · Score: 2, Informative

      With MySQL it is a bit more then just an abstraction problem. Untill fairly recently MySQL did not support foreign keys and it still doesn't by default.

      So take a:
      client -< order -< parts
      relationship.
      On deleting the client you'd have to select all orders and delete the parts involved, then delete the orders and then delete the client.

      Now exchange MySQL for a real RDBMS. The RDBMS will take care of everything upon deleting the client. There is no real harm in your application trying to delete records that have already been deleted, but I hope you can see the need or at least the urge to rewrite it.

      This is just a simple example. if you take into account the multitudes of 'programmers' who've never heard of transactions and were first exposed to databases with MySQL then the agony is endless :)

      Bottom line is: when porting from MySQL, expect rewrites!

      --

      What a rotten party, have we run out of beer or something?
    13. Re:A response to X? by Samrobb · · Score: 2, Insightful
      So you can't distribute the GPLed MySQL with Solaris or Windows without GPLing the entire system.

      Bzzt. You can't distribute the GPLed MySQL with Solaris or Windows without violating the license. (Never mind that as other posters pointer out, the GPL specifically allows linking with standard OS libraries, etc.)

      One possible way to resolve a GPL license violation is to place your code under the GPL as well, but it's not the only possible resolution. In some cases (for example, MySQL) the same version of the code my be under an enitrely different license that the author(s) will allow you to use instead. In other cases, the violator might decide to not release their source code, but instead stop shipping their product and pay any damages that might be awarded for the license violation.

      Putting the code under the GPL is a possible solution; but it's not the only solution. Unless you take the issue to court, the ultimate resolution remains a matter of negotation and agreement netween the authors of the GPL code and those who violated their license.

      --
      "Great men are not always wise: neither do the aged understand judgement." Job 32:9
    14. Re:A response to X? by T-Ranger · · Score: 2, Insightful
      MySQL with InnoDB tables is ACID compliant. InnoDB tables are the default with 4.x, which has been out for 2+ years.

      There is a SQL standard. Exactly 0 databases conform to (any version of) the standad, implement all of the features, and dont have extensions. All vendors implement things slightly different, and have their own extensions. Some of these diversion from the standard be compatable with other vendors , but such comptability is luck.

      Many feel that this is intentional by DB vendors for customer lock in.

      While it may be theoritecly possible to build a cross vendor compatable DB, the tempation to use usefull extensions is great. It happens all the time.. Any non-trivial database / SQL program will not be cross vendor comptable. For a bunch of reasons, a lot of MySQL code has been written by people who are unaware of the state of DB incompatibilties, and thus make little effort to use portable code. Or some people just dont care about portability. It is not MySQLs fault that ignorant or apathetic users rely heavily on its extenstions/incompatabilities.

  2. Quid pro quo by Space+cowboy · · Score: 3, Insightful

    Or, in this case no quids were involved (a quid is UK slang for a British pound...)

    It restores my faith in people when something like this happens - MySQL and PHP are the joint foundations on which a huge number of OS projects depend. Way to go MySQL :-))

    Simon

    --
    Physicists get Hadrons!
  3. What about me? by Anonymous Coward · · Score: 2, Funny

    I'm a Python guy and I feel fucked over.

  4. I don't see a problem with it... by robslimo · · Score: 5, Interesting

    ...but I'm sure some GPL zealots might.

    To me, it looks like an issue of pragmatism and the MySQL folks apparently aren't hung up on religious adherence to GPL principles.

    It's an issue of maximum applicability, to me.

    1. Re:I don't see a problem with it... by Tablizer · · Score: 2, Funny

      It's not at the Fizbin or Dragon Poker level yet, thank Ghod.

      Fizbin! An obscure OS Trek reference where Kirk makes up a phoney "Earth game" to confuse warring factions on a planet that copied the 1920's earth styles, including Chicago gangs. It was fun watching spock trying to learn to bullshit, an activity that he clearly did not like......at first. Classic.

    2. Re:I don't see a problem with it... by Anonymous Coward · · Score: 2, Informative

      The thing about MySQL's GPL licensing nonsense is that it cannot be used from within libgda the GNOME data access system -- and so the backend for MySQL ends up being removed. This probably applies to other systems as well.

    3. Re:I don't see a problem with it... by _|()|\| · · Score: 2, Interesting
      [MySQL] cannot be used from within libgda

      While I disagree with MySQL's decision to GPL the client libraries, I don't think it's a significant problem. Libgda is LGPL, which is explicitly GPL compatible. Maintain the GPLed MySQL backend separately (which is easy to do with libgda's modular back ends), so the user has the choice to build a GPLed libgda with MySQL support.

      Incidentally, I agree with other posters that MySQL's FOSS exception is practically worthless, due to the aggregation clause.

    4. Re:I don't see a problem with it... by Telex4 · · Score: 2, Interesting

      but I'm sure some GPL zealots might.

      What is wrong with being fanatically committed to the GPL and its principles? Seriously, it is all too easy to suggest that somebody who makes a stand is an extremist, when you yourself declare no standards and bend with the wind.

      Maximum applicability is pretty vague. I'm guessing you mean that individuals, groups or for-profit organisations ought to use whatever licensing terms are most applicable... but to what end? Do you value the quantity of software, the technical quality, the economic/technical/social accessibility of software, the freedom of the user in relation to software, or perhaps something else?

      You see, I'm what you might call a GPL zealot, and I'm of the opinion that as a technical tool with important social and political dimensions, the applicability of software stands in relation to its benefits to society. The GPL is a matter of pragmatism in that sense, but you're sticking to the narrow conception of value that I'm guessing is native to your culture, and labelling anyone who disagrees as a zealot. Isn't that just being irrationally and fanatically committed to a set of values without justification?

  5. It had to happen. by James+A.+J.+Joyce · · Score: 4, Insightful

    PHP and MySQL are very close. One can't really thrive without the other, so if one adopts a more restrictive license, both lose out. And considering the massive penetration of PHP and MySQL, neither can risk this kind of thing.

    1. Re:It had to happen. by confuse(issue) · · Score: 3, Informative

      One can't really thrive without the other

      In the webspace this may be true. However, MySql is far more than a backend to a web database (OK I'll admit PHP is more than access to a database as well) both projects are used independently of each other in numerous ways.

    2. Re:It had to happen. by Nuclear+Elephant · · Score: 2, Insightful

      Quite the contrary, I develop several applications using MySQL and none of them are PHP-based, but rather C. Why should PHP get any special attention? It's just another tool, one that I choose not to use, and certainly some PHP scriptkiddie doesn't deserve any better licensing than I do.

    3. Re:It had to happen. by DarkSarin · · Score: 4, Informative

      Not really...

      PHP, though most commonly used in conjunction with MySQL, cerainly has many other uses, and can connect to a number of other databases, even that *other* open source db, postgre.

      Sorry, but while it might hurt php to lose mysql, it wouldn't kill it.

      --
      "We don't know what we are doing, but we are doing it very carefully,..." Wherry, R.J. Personnel Psychology (1995)
    4. Re:It had to happen. by scragz · · Score: 5, Informative

      RTF license exception page. It doesn't only apply to PHP:

      Academic Free License 2.0
      Apache Software License 1.0/1.1/2.0
      Apple Public Source License 2.0
      Artistic license From Perl 5.0.8
      BSD license "July 22 1999"
      Common Public License 1.0
      GNU General Public License (GPL) 2.0
      GNU Library or "Lesser" General Public License (LGPL) 2.1
      Jabber Open Source License 1.0
      MIT license -
      Mozilla Public License (MPL) 1.0/1.1
      PHP License 3.0
      Python license (CNRI Python License) -
      Python Software Foundation License 2.1.1
      Sleepycat License "1999"
      W3C License "2001"
      Zlib/libpng License -
      Zope Public License 2.0

    5. Re:It had to happen. by Bromrrrrr · · Score: 2, Insightful

      but my C web apps run circles around any PHP apps

      Yes, I'm sure your guestbook is really nice :)

      Ok, that was a cheapshot and I apologize, but writing web apps in C sounds like either boasting or pure insanity to me.

      Do you write your shell scripts in assembly??

      --

      What a rotten party, have we run out of beer or something?
    6. Re:It had to happen. by iminplaya · · Score: 2, Insightful

      Jeez...a chicken in every pot and a different license for every program. Soon, a program will be 70% license and 30% code. I definitely have to find a way into the license business. Licenses...get 'em cheap right here...GPL, LGPL(Ladies GPL), GNU, Wildebeest(?), Sleepycat, Copycat...we got 'em all!

      --
      What?
    7. Re:It had to happen. by PyromanFO · · Score: 4, Funny
      Jeez...a chicken in every pot and a different license for every program. Soon, a program will be 70% license and 30% code.

      So the open source community is finally catching up to the propietary software business!
    8. Re:It had to happen. by Erik+Hollensbe · · Score: 2, Informative

      POSTGRES

      Founded on Ingres (not Ingre). Sorry, it's a pet peeve of mine... I've known people for years that call it that, and it drives me nuts.

      On your other comment.... It'll hurt MySQL more to abandon the OSS community than the opposite.

      Take a look at all the PHP apps that are tied to MySQL. I know there's (I think it's called) ADODB for PHP now, which for the uninformed is like perl's DBI for PHP, but it's PEAR and not everyone has it. DBI is pretty much the de-facto way to access databases in perl, and there's an easy way to write simple SQL that works for the 3 most popular UNIX databases (Oracle, MySQL and PostgreSQL), save sequence manipulation. OF course, when you start getting into more advanced SQL you're looking at a further abstraction. And forget stored procedures.

      The reason that this could have hurt PHP is that MySQL and PHP are both fast, easy to use and have little learning curve allowing junior programmer-types to get a lot done in little time.

  6. MySql by ultrabot · · Score: 3, Interesting

    Why do people still keep using MySQL, in spite of their atrocious license changes? Or does everyone insist to keep on using the old version?

    Postgresql is there, and is as free as can be.

    BTW, why can't people just fork the old version of MySQL and use any license they want? Lack of skills?

    --
    Save your wrists today - switch to Dvorak
    1. Re:MySql by RLiegh · · Score: 4, Insightful

      Probably for the same reason that they don't switch to PostSQL -- massive investment of time in learning MySQL (we're talking years, here) which makes them hesitent to switch to an incompatible technology, and unable to do the heavy programming required to create a new branch from old MySQL code.

    2. Re:MySql by moosesocks · · Score: 4, Insightful

      The same reason millions of people continue to use windows and OS X.

      Everyone knows how to use it, it's well-documented, It works, and (in the case of OSX), it's pretty damn good at what it does.

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    3. Re:MySql by Anonymous Coward · · Score: 2, Insightful
      Postgresql is there, and is as free as can be.

      Postgresql is too complicated to administer. Unless you want to hire a full time DBA then just stick with MySQL for your small projects. Much easier to setup and learn.

    4. Re:MySql by kris · · Score: 2, Insightful

      Because Postgresql cannot compete with MySQL in terms of features that count for the target scenarios.

      Postgresql is underdocumented, the MySQL online documentation simply excels.

      There is no readily available workforce that has actual Postgresql knowledge. There are on the other hand buttloads of people available that can drive average sized MySQL installations for cheap money.

      Postgresql does not support shared scenarios as good as MySQL. That's sharing the same machine with a web server, and that's sharing multiple logical databases as in a hosting environment (including putting the actual data files into each customers chrooted environment). MySQL does this very well.

      Postgresql replication is regarded mostly experimental and is not properly integrated with the server. In larger MySQL deployments, replication is often used for load sharing (direct read only queries against any replica), and for backups.

      Postgresql already has many features MySQL either just got with 4.1 or is planned to get in 5.x. That is useless, though, if you do not need these features, but need to deploy in a hosted standard environment, relying on the available workforce.

      Still, this is a large window of opportunity for Postgresql, if Postgresql plays this correctly. So where are the MySQL migration guides, the "Hosting with Postgresql" Setup-Howtos, and where is the "Using replication in Postgresql" tutorial?

    5. Re:MySql by /ASCII · · Score: 4, Insightful

      Because MySQL is GPLed?

      Since the license of several open source scripting languages are not GPL-compatible, MySQL grants these projects additional rights above those already provided through the GPL.

      So these 'atrocious license changes' are like the TV-sales people who when you order you new set of stake knives insist on also giving you a juicer and a can opener for free.

      --
      Try out fish, the friendly interactive shell.
    6. Re:MySql by Bromrrrrr · · Score: 2

      Because Postgresql cannot compete with MySQL in terms of features that count for the target scenarios.

      Bullshit! If your scenario is 'having an RDBMS' then it's MySQL who cannot live up to the task, Transactions, subqueries and data constraints are more then just 'nifty features' you know.

      There is no readily available workforce that has actual Postgresql knowledge. There are on the other hand buttloads of people available that can drive average sized MySQL installations for cheap money.

      Yes but you get what you pay for. Database theory IS NOT hard to learn, but if you prefer your neighbourhood 'computer expert' who's never looked further then his various cookbooks, then MySQL is your database :).

      Agreed though, Postgres replication is crap at best and it's documentation is horrible. If I recall correctly most user contributed notes on postgresql.org are either complaints about how lacking the documentation is or contributions that SHOULD have been in the docs themselves.

      Sorry if this came out as a bit of a troll, I've just seen to many Perl|PHP|WhatHaveYou 'hackers' poor their awful code on an unsuspecting world *shudder* and MySQL, even though not at fault, has been a major catalyst in this. Certainly not your fault though, so sorry :)

      Cheers

      --

      What a rotten party, have we run out of beer or something?
    7. Re:MySql by jockm · · Score: 2, Informative

      But SQL is SQL and apart form the usual database specific extensions, it is standard. So applications built on top of SQL compliant database engines should port with ease.

      Every RDBMS out there has their own extentions to the SQL language, and none of them implement the entire SQL-99 spec. So every system is both a subset and a superset of the standard. Robust dtatabase applications end up tailoring their SQL to the paticular database system they are using, and porting away can be a non-trivial task.

      --

      What do you know I wrote a novel
    8. Re:MySql by Billly+Gates · · Score: 2, Funny

      Because Linux cannot compete with Windows in terms of features that count for the target scenarios.

      The Linux how-to's are underdocumented, the MSDN online documentation simply excels.

      There is no readily available workforce that has actual Linux knowledge compared to MCSE's. There are on the other hand buttloads of people available that can drive average sized Windows installations for cheap money.

      Linux does not support shared ole/com business apps as good as Windows. That's sharing the same machine with a active directory, and that's sharing multiple logical MS-SQL server databases as in a hosting environment (including putting the actual data files into each customers profiles). Windows does this very well.

      Unix LPAD replication is regarded mostly experimental and is not properly integrated with the server. In larger Windows/Active directory deployments, replication is often used for load sharing (direct read only queries against any replica), and for backups of profiles.

      Linux already has many features Windows2k3 either just got with 4.1 or is planned to get in longhorn. That is useless, though, if you do not need these features, but need to deploy in a hosted standard shared environment, relying on the available workforce.

      Still, this is a large window of opportunity for Linux, if Linux plays this correctly. So where are the Windows migration guides, the "Hosting with Linux" Setup-Howtos, and where is the "Using LPAD/Kerbos replication how-to's" tutorial?

    9. Re:MySql by kris · · Score: 2, Insightful

      Bullshit! If your scenario is 'having an RDBMS' then it's MySQL who cannot live up to the task, Transactions, subqueries and data constraints are more then just 'nifty features' you know.

      I know. Even MySQL knows, or otherwise they wouldn't build them into their current versions.

      Still their importance is overestimated - the bottom 80% of all applications are just fine with MySQLs MYISAM "autocommit style nontransactions" and deal without subqueries just fine. MySQL just totally owns that market because a) it serves up these 80% of customers blindingly fast, b) it implements stuff that does not have to do with databases in the first place, but with management issues such as being drop dead easy to administer and fit into a hosted environment just nicely.

      Sorry if this came out as a bit of a troll, I've just seen to many Perl|PHP|WhatHaveYou 'hackers' poor their awful code on an unsuspecting world *shudder* and MySQL, even though not at fault, has been a major catalyst in this. Certainly not your fault though, so sorry

      I know databases, and I know the past and current limitations of MySQL. They do not concern me in the vast majority of cases where I do need a database. By using MySQL for such projects, I can be sure that just about everybody will be able to maintain the end result, which again, is not a database, but a management issue.

      And this is probably the main gripe I have with the Postgresql people. The almost certainly are the better database people, but they are completely lacking vision regarding analysis of target market requirements (MySQL excels here!) and their marketing/community communication department is next to nonexisting.

      So they do have the better database, but nobody cares. That's a shame, and it should be changed. Remebering last years Linuxtag, I just don't know how. These people are hopeless geeks.

    10. Re:MySql by CJSpil · · Score: 2, Insightful

      Would you care to give some examples as to how PostgreSQL is harder to administer than MySQL? Having used both, I would say they are both fairly easy to administer.

      If you want something that can be really nasty to administer, use Oracle or DB2

      As far as I am concerned, it's all about selecting the right tool for the job. My last project needed subqueries and enforced relational integrity and at the time MySQL couldn't handle this, PostgreSQL could!

      Unfortunately for MySQL that means that I'm unlikely to consider it for another project, unless it can offer something that I need that PostgreSQL can't (Hasn't happened yet)

      --
      For people who like peace and quiet. A phoneless cord!
    11. Re:MySql by Cecil · · Score: 2, Interesting

      Postgresql replication is regarded mostly experimental and is not properly integrated with the server. In larger MySQL deployments, replication is often used for load sharing (direct read only queries against any replica), and for backups.

      Perhaps PostgreSQL is not as unreliable as MySQL, so it doesn't need replication nearly as badly. I have yet to see a slashdotted site running postgres fall over and die (although it does get slow). MySQL, on the other hand, how often have you seen it return blank screens, database-refused-connect errors?

      How people get off calling MySQL "enterprise level" boggles my mind. It might as well be a fucking flat file that supports SQL. Speed at what cost?

      Sorry. I just get so frustrated when my employer needs a database, everyone suggests "MySQL is the greatest" and then my employer goes to use it, finds it doesn't support referential integrity, doesn't support transactions, crashes or locks up or misbehaves under strain, doesn't do anything a database should do, gives up, and BUYS ORACLE INSTEAD.

      MySQL is a toy, not enterprise level. It's nice, it's cute, it's relatively fast, but it's not always the best damn tool for the job. MySQL and PostgreSQL both have their niches. Learn them both, use them both.

      There is no readily available workforce that has actual Postgresql knowledge.

      Sadly true. There are too many MySQL zealots out there that see MySQL as the only possible solution to any problem.

      Disclaimer: I am not a PostgreSQL zealot, though I may sound like one. I'm just fed up with the general consensus that MySQL is "the only serious open source database" while Postgres is basically ignored except as a curious sidenote.

    12. Re:MySql by Bromrrrrr · · Score: 2, Interesting

      Still their importance is overestimated - the bottom 80% of all applications are just fine with MySQLs MYISAM "autocommit style nontransactions" and deal without subqueries just fine.

      No, in fact they are not fine with it, and unless you want to compensate me for every unnecessary line of code I had to write for using MySQL I will not agree with you :).

      By using MySQL for such projects, I can be sure that just about everybody will be able to maintain the end result, which again, is not a database, but a management issue.

      Quality, Price, Time. Pick any two. I can't blame you for going the route that gives you the most return and I won't, but I prefer quality in my work and I like to take pride in my work, MySQL as it is now won't give me that.

      And this is probably the main gripe I have with the Postgresql people. The almost certainly are the better database people, but they are completely lacking vision regarding analysis of target market requirements (MySQL excels here!) and their marketing/community communication department is next to nonexisting.

      And still, you know about postgress, you claim to know about databases and you tell your clients to go with MySQL?

      --

      What a rotten party, have we run out of beer or something?
    13. Re:MySql by kris · · Score: 4, Insightful

      Perhaps PostgreSQL is not as unreliable as MySQL, so it doesn't need replication nearly as badly. I have yet to see a slashdotted site running postgres fall over and die (although it does get slow).

      Replication is not limited to reliability issues, in fact, even in MySQL it is not used for that most of the time. It is instead being used for scalability, and for convenience.

      When MySQL sites fail, they usually fail due to the MySQL connection pool being exhausted - MySQL has a configureable limit for this, and your webserver has a configureable limit for the number of concurrent connections (each using a number of database connections) it serves. If these numbers do not match, any database server will return errors.

      And just for the record, where I work, I have seen Oracle servers fall over and die. Not due to connection limits, but due to plain and simple errors inside the code. Then again, where I work we tend to exercise our machines quite a bit.

      MySQL is a toy

      Actually, I'd tend to call MySQL a tool. One that's has been vastly different from Postgresql and Oracle in the past (3.x versions), and one that served the target market much better than either Postgresql or Oracle could - there is simply no way to build shared hosting for webshop/weblog/guestbook/cms/ad-hoc type applications based on Oracle for a competitive price.

      And even if you managed to get the licenses for free, the hardware and administration costs would have forced you out of the market. Using Oracle here would be like using the sledge hammer for motherboard maintenance.

      Similar situation with Postgresql: At the time the LAMP hosting market was created, the Postgresql team did not offer their product in a packaging that was usable for the job - no neat distribution, no documentation that a hoster could have handed to the end user, no proper support for shared hosting environments.

      MySQL addressed all these needs, had a matching deployment model and the price was right. Using this as a vehicle, MySQL grew with the market and created a vast number of people using MySQL as a household name.

      That was possible, because this was a new market far below what the established database vendors saw as their target markets, and with much smaller requirements. There was no need at all for "enterprise level" in webhosting environments.

      But consider what MySQL did to the unwashed masses: Before the advent of the LAMP combination, SQL knowledge was expert knowledge, and hard to find. MySQL, not Postgres nor Oracle - both older than MySQL! - , changed this and today every script kiddie has basic MySQL syntax knowledge and would rather chose a MySQL database than a flat file to store a high score list.

      MySQL 4.0 and 4.1 are the first steps MySQL, the company, takes migrate their market upwards into "enterprise" regions. 5.0 will take them there, read the feature plan and try out the Alpha. They are arriving in their new market segment right now, and they are not alone. They are bringing masses of people that grew up on MySQL and that grew with MySQL.

      That does two things: It commoditizes databases, gnawing at the market from below. MySQL does to the SQL market what Linux did to the Unix market, only that MySQL is now where Linux was in 1994 in terms of market development. It also popularizes knowledge, in this case knowledge about relational algebra and data modelling, about SQL, replication, storage management and related issues, just as the advent of Linux popularized knowledge about Unix, about TCP/IP networking and a lot of related topics.

      Any yeah: Linux was not "enterprise level" in 1994 as well and got badmouthed by the established Unix vendors. Didn't help them much: It is Linux that's still around, while the rest is either vanishing, sueing themselves to death or is frantically becoming Linux compatible.

      MySQL could become the Linux of the database market. If - and that's a big if - if the MySQL management avoids getting into the way of such a development.

      Chances are that they fuck it up. There is to much venture capital involved - these people want to see 3-5 year returns on their money, but we are talking a 10-15 year development here.

    14. Re:MySql by doom · · Score: 3, Insightful
      kris wrote:

      And just for the record, where I work, I have seen Oracle servers fall over and die. Not due to connection limits, but due to plain and simple errors inside the code.
      Acutally, I've worked places where this was happening with Oracle now and then for reasons that were hard to determine. There was some sort of load-related "spiral-of-death" happening. A shutdown and restart would "fix" everything, until the next time... (the solution they came up with was to just reduce the query load on the Oracle database by using distributed Postgresql databases with copies of read-mostly data).

      Actually, I'd tend to call MySQL a tool. One that's has been vastly different from Postgresql and Oracle in the past (3.x versions), and one that served the target market much better than either Postgresql or Oracle could - there is simply no way to build shared hosting for webshop/weblog/guestbook/cms/ad-hoc type applications based on Oracle for a competitive price.
      But suddenly you're not talking about Postgresql anymore... Most of the stuff people do with MySQL you could easily do with Postgresql instead (hell, *most* of it you could just use BDB).

      This seems a little confused:

      Similar situation with Postgresql: At the time the LAMP hosting market was created, the Postgresql team did not offer their product in a packaging that was usable for the job - no neat distribution, no documentation that a hoster could have handed to the end user, no proper support for shared hosting environments.
      I can't imagine what you're talking about, really. When web apps were adopting MySQL Postgresql had a number of genuine technical problems that turned people off, but these don't sound like them. For example, there was an 18K limit on row size.

      (And also during that period, MySQL had the market cornered on bullshit. Like "Transactions??? Aww, you don't need that shit." And MySQL boosters than -- and now -- seem to regard mysql.org as the fountain of truth... for example, "MySQL is *fast*" appears to be an article of faith, but the people who say that rarely do their own benchmarks, never worry about what happens under heavy load, etc.)

      Any yeah: Linux was not "enterprise level" in 1994 as well and got badmouthed by the established Unix vendors.
      And they all laughed at Christopher Columbus, but many people who seem crazy genuinely are crazy, and some things that experts sneer at as toys may in fact really be toys.

      Chances are that they fuck it up. There is to much venture capital involved - these people want to see 3-5 year returns on their money, but we are talking a 10-15 year development here.
      Yup. Usually venture capital is the death of anything worthwhile (it's amazing google has held on for so long).

      Anyway, I should explain that I don't keep up with the state of MySQL's code. For all I know the MySQL defenders are right when they say they're got all the features you could want now... I gave up on following MySQL a long time ago, but I did it as much for social reasons as for technical ones.

      MySQL has always been a little too cute in the way they pose like one of the guys to keep their mindshare in the free/open world. Remember the old not-exactly-free license that penalized people for running on Microsoft? It's sounds like they're trying to play the same kind of games with their sort-of-GPL'ed libraries.

    15. Re:MySql by doom · · Score: 2, Insightful
      Billly Gates wrote:
      I use postgresql as well. It was a pain to find an isp that used that rather then mysql which is why Mysql is popular.
      You've got a cause-and-effect problem going here. MySQL became popular at a critical time, hence it became ubiquitous. It's not particularly *difficult* for an ISP to provide Postgresql support, but it would be just one more thing to hassle about, and the market is relatively small...

      I think part of the trouble there is that if you're half-way serious you want to set up your own boxes anyway... the small fry that want to run web apps on someone else's box are either (a) unlikely to need a real RDBMS like postgresql or (b) unlikely to know why they need it, take your pick.

  7. Distros cannot take advantage of this by tepples · · Score: 5, Interesting

    This license exception is BS. It requires that "The Derivative Work does not include or aggregate any part of the MySQL Server" where "the term 'include or aggregate' means to embed, integrate, bundle, aggregate, link, distribute on the same media or in the same packaging, provide with instructions to download or automate any of the preceding processes." This effectively means that any non-GPL program that links to MySQL client libraries cannot be distributed in an operating system distribution with the MySQL server. It also means that the documentation for such packages can't even mention "www.MySQL.com" because that would count as "provid[ing] with instructions to download".

    1. Re:Distros cannot take advantage of this by Homology · · Score: 3, Interesting
      This license exception is BS.

      Indeed, and PHP users caring about GPL should worry about the tight coupling with a database server that has restrictions on binary distribution.

  8. Love PHP! by tarzan353 · · Score: 4, Interesting

    I really enjoy using PHP for web development. I find that you can't beat scripting languages for ease of maintenance, quick turnaround time, and tweakability.

    One of the big reasons I chose PHP was the availability of "LAMP": Linux, Apache, MySQL, PHP. I know these technologies have been around for years and will be around for many more years, so it's an easy sell to management. There's plenty of talk on the newgroups if you ever get stuck and PHP's online documentation with user comments is priceless. I think more documentation should follow this example.

    That aside, the pure performance and reliability of the above is excellent. These technologies were made to work together, and from what I hear the teams even collaborate to make sure their stuff stays working together. It really shows.

    Years ago I worked on ASP/SQL Server solutions and where you had to go with native code for high-performance with ASP, I find that with PHP it is high performance on its own.

    Great job to everyone who has helped put together these technology solutions. A shining example of the high quality that can come out of the collaborative efforts of many.

  9. Old news? by Richard_at_work · · Score: 4, Interesting

    Im sure i saw this within the Mysql license over 2 months ago. Its good to see mysql making exceptions for other opensource projects, and acknowledging that there are other non gpl licenses. I wonder if the PHP crew will reevaluate the decision to remove mysql client from php5?

  10. Python is included too by attonitus · · Score: 5, Informative

    FOSS license Exception. Scroll down for the table.

  11. Will this boot MySQL from Debian? by Mr.+Darl+McBride · · Score: 4, Interesting
    Debian prohibits discriminatory licenses. The exception makes this become a discriminatory license.

    Will Debian now remove MySQL or move it to non-free?

    ~Darl

    1. Re:Will this boot MySQL from Debian? by saforrest · · Score: 3, Informative

      Will Debian now remove MySQL or move it to non-free?

      Well, whether or not MySQL happens to allow this exception themselves, I don't see any reason why Debian couldn't simply redistribute MySQL and remove the exception.

      Presumably MySQL is offering a specific non-GPL licence to select 'friends', of which PHP is one. This does not change the fact that MySQL is also distributing its product under the GPL. Thus, Debian can simply choose to only use the GPL for redistribution.

    2. Re:Will this boot MySQL from Debian? by interiot · · Score: 5, Insightful
      Debian Free Software Guidelines (DFSG):
      • 5. No Discrimination Against Persons or Groups
      • The license must not discriminate against any person or group of persons.

        6. No Discrimination Against Fields of Endeavor

        The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

      Debian Free Software Guidelines (DFSG) FAQ:
      • Q: What about licenses that grant different rights to different groups? Isn't that discrimination, banned by DFSG#5/6?
      • A: For Debian's purposes, if all the different groups can exercise their DFSG rights, it's OK if there are other people who can do more. For example, if a work were distributed to everyone under the GPL, but elementary school teachers were given the extra right to distribute binaries without distributing the corresponding source code, it would still be DFSG-Free.

      Makes a whole lot of sense to me.
  12. ok, but... by hak1du · · Score: 5, Insightful

    I have no problem with the making such a license change per se--they have the right to do it and it doesn't limit the existing license in any wqy.

    But, the approach itself strikes me as unnecessarily complex and short-sighted. There is a growing list of compatible licenses in there--who is going to keep that up to date? What's going to happen when MySQL disappears and nobody can make such little changes to the license anymore?

    A fairly straightforward compromise would be to put them under the LGPL license. I think that would also make sense because it would get vendors of commercial tools to incorporate the client libraries into their software. But it seems like MySQL's business strategy is getting into the way there because they appear to want to make money from licensing even the MySQL client libraries that way.

    This situation seems vaguely analogous to Qt's GPL license: in both cases, a commercial owner of an OSS project is choosing the GPL license as an encumbrance in order to be able to get money from some class of commercial users. In the case of MySQL, they are trying to limit the "collateral damage" to non-GPL compatible OSS projects by making exceptions. But in both cases, I suspect that having these libraries under the GPL is itself a suboptimal strategy because it limits the adoption of OSS. For things like GUI toolkits and database client libraries, it seems best for OSS if companies incorporate them into their commercial software as much as possible, and that means choosing a license more liberal than the GPL. But, again, commercial interests prevent that in these cases.

    Well, I personally had just assume that the MySQL client libraries were LGPL or BSD. Thanks for bringing this up. Not the license change itself, but the fact that it has brought the MySQL license situation to my attention, is a reason for me to think about using SQLite and PostgreSQL more seriously.

    1. Re:ok, but... by kris · · Score: 2, Informative

      Well, I personally had just assume that the MySQL client libraries were LGPL or BSD.

      The MySQL Client Libraries 3.x are LGPL. The MySQL Client Libraries 4.x are GPL. In order to talk to a 4.x server, you need 4.x client libraries. 4.x client libraries are downward compatible and can talk to 3.x servers.

    2. Re:ok, but... by Anonymous Coward · · Score: 2, Insightful

      The GNU Project has two principal licenses to use for libraries. One is the GNU Lesser GPL; the other is the ordinary GNU GPL. The choice of license makes a big difference: using the Lesser GPL permits use of the library in proprietary programs; using the ordinary GPL for a library makes it available only for free programs.

      Which license is best for a given library is a matter of strategy, and it depends on the details of the situation. At present, most GNU libraries are covered by the Lesser GPL, and that means we are using only one of these two strategies, neglecting the other. So we are now seeking more libraries to release under the ordinary GPL.

      Proprietary software developers have the advantage of money; free software developers need to make advantages for each other. Using the ordinary GPL for a library gives free software developers an advantage over proprietary developers: a library that they can use, while proprietary developers cannot use it.

      Using the ordinary GPL is not advantageous for every library. There are reasons that can make it better to use the Lesser GPL in certain cases. The most common case is when a free library's features are readily available for proprietary software through other alternative libraries. In that case, the library cannot give free software any particular advantage, so it is better to use the Lesser GPL for that library.

      This is why we used the Lesser GPL for the GNU C library. After all, there are plenty of other C libraries; using the GPL for ours would have driven proprietary software developers to use another--no problem for them, only for us.

      However, when a library provides a significant unique capability, like GNU Readline, that's a horse of a different color. The Readline library implements input editing and history for interactive programs, and that's a facility not generally available elsewhere. Releasing it under the GPL and limiting its use to free programs gives our community a real boost. At least one application program is free software today specifically because that was necessary for using Readline.

      If we amass a collection of powerful GPL-covered libraries that have no parallel available to proprietary software, they will provide a range of useful modules to serve as building blocks in new free programs. This will be a significant advantage for further free software development, and some projects will decide to make software free in order to use these libraries. University projects can easily be influenced; nowadays, as companies begin to consider making software free, even some commercial projects can be influenced in this way.

      Proprietary software developers, seeking to deny the free competition an important advantage, will try to convince authors not to contribute libraries to the GPL-covered collection. For example, they may appeal to the ego, promising "more users for this library" if we let them use the code in proprietary software products. Popularity is tempting, and it is easy for a library developer to rationalize the idea that boosting the popularity of that one library is what the community needs above all.

      But we should not listen to these temptations, because we can achieve much more if we stand together. We free software developers should support one another. By releasing libraries that are limited to free software only, we can help each other's free software packages outdo the proprietary alternatives. The whole free software movement will have more popularity, because free software as a whole will stack up better against the competition.

  13. moral: don't contribute to copyright holder by Anonymous Coward · · Score: 3, Insightful

    The moral of the story is clear: don't contribute to dual licensed projects, or any project where there is a clear single copyright owner. They have the ability to re-license at will, profiting from your work as you please and not having to offer in return what the original distribution license intended (e.g. GPL).

    1. Re:moral: don't contribute to copyright holder by saforrest · · Score: 3, Insightful

      The moral of the story is clear: don't contribute to dual licensed projects, or any project where there is a clear single copyright owner. They have the ability to re-license at will, profiting from your work as you please and not having to offer in return what the original distribution license intended (e.g. GPL).

      I know little about copyright law, but this seems wong to me. When you contribute code, you must have some expectation of how the code will be distributed.

      The ownership of collaborative projects cannot be determined uniquely by the initial copyright owner. For example, I don't think Linus Torvalds has the right to release Linux under a non-GPL licence.

      MySQL has always been available under more than one licence, so calling the GPL the 'original distribution license' is wrong. Contributors to MySQL must have known their work would be released commercially as well as under GPL, and contributed code with this belief.

      So, the reason MySQL has the power to release code under a non-GPL licence without breaking faith with their contributors is because they have always reserved that right to themselves, have informed contributors of this fact all along, not because they are the 'original copyright holder'.

      That said, you're quite right that if you believe strongly in the GPL as the one true licence, contributing to dual-licensed projects, especially ones in which the second licence is proprietary, might be setting yourself up for betrayal.

      A better idea than not contributing at all is forking, redistributing only under the GPL, and contributing to the new forked project. Since the original project would still be GPL'ed, you could incorporate later revisions, while keeping your own changes, but all this work would probably get tedious after awhile unless you really believed in the goal (using the GPL exclusively).

    2. Re:moral: don't contribute to copyright holder by ChopsMIDI · · Score: 3, Insightful

      Once a release has been distributed and licensed under the GPL (or any license for thaty matter), you can't "un-license" it later.

      --

      How could I say to men: "Speak louder, shout! For I am deaf!"? -Ludwig van Beethoven
  14. Here me now, believe me later by freelunch · · Score: 5, Informative

    MYSQL just received $19.5 million in venture capital funding.

    While this could and should be great, it remains to be seen what impact the influx will have.

  15. OurSQL fork... by turnstyle · · Score: 3, Funny
    "...unable to do the heavy programming required to create a new branch from old MySQL code."

    What heavy programming? After all, can't you just take it, change a few lines and call it OurSQL?

    --
    Here's what I do: Bitty Browser & Andromeda
    1. Re:OurSQL fork... by rifter · · Score: 2, Funny

      Why not? Who's to say how much of a project needs to change in order to consider it forked? Obviously to keep it moving forward would take serious ongoing work, but it seems like releasing it as a simple fork would be trivial.

      It's not so much that as adding (and rewriting) the features and patches developed since the old version of MySQL was released. Then you have to maintain this new fork without the benefit of all the coders who disagree with your need for the fork and are currently working on the real MySQL as opposed to WankerSQL :).

  16. How about Red Hat? by Bender+Unit+22 · · Score: 4, Informative

    The RH enterprise 3, releases has all MySQL v3.
    The MySQL changelog says:

    * Thu Jul 03 2003 Patrick Macdonald 3.23.57-1
    - revert to prior version of MySQL due to license incompatibilities
    with packages that link against the client. The MySQL folks are
    looking into the issue.

  17. Re:Commercial Open Source? by ChopsMIDI · · Score: 3, Informative

    As for use on your own website, if you aren't planning on selling it or seling it unmodified, you can do whatever you want to it, regardless.

    But if you plan on selling it packaged, even before this add-on license, as long as you distribute the code with it, thus adhering with the GPL, you're in good shape.

    Selling it with a PHP solution is fairly straightforward...you are more or less just selling the PHP code, and telling them that it needs to run on a MySQL database. That's kinda like writing a program that runs on Linux, and telling them that they need to install linux (or you'll gladly install it for them) to run this program. You aren't really "Selling" the database.

    But even if you are, as long as the GPL is upheald, you're right as rain.

    --

    How could I say to men: "Speak louder, shout! For I am deaf!"? -Ludwig van Beethoven
  18. Re:Popular != Better by RLiegh · · Score: 2, Interesting
    Even in the realm of open-source databases, there are better choices. ... Anything that can be done with MySQL could be done as well or better with MS-Access.


    Since the first example you reached for was Microsoft that makes me wonder if there really are better choices in the OSS/database world.
  19. Re:At what point do you devalue your use of the GP by ultrabot · · Score: 2, Insightful

    If your intent is to foster contributions to your project, then aren't you in danger of losing that by allowing more liberal (and potentially, more closed) licenses to be used with your project?

    Umm... no. For example, if the client libs were LGPL, any improvements to them would need to be public, but any program using those libs wouldn't need to be. Obviously, even with the new clause, improvements to client libs would need to be public.

    Licensing a library as GPL is motivated purely by the prospect of profiting from dual-licensing the library to companies that can't release their code under GPL.

    --
    Save your wrists today - switch to Dvorak
  20. Phrase by macdaddy · · Score: 4, Funny
    ...hung up on religious adherence to GPL principles.

    I think the phrase you're looking for is "GNU Dogma." Correct?

  21. Re:hm? by leviramsey · · Score: 2

    MySQL changed the license of the client libraries to GPL from LGPL. This meant that anything which linked to the client libs had to be GPL. The non-GPL crowd (including PHP) got in a huff about this.

  22. Bloody ASP by ChopsMIDI · · Score: 2, Funny

    Years ago I worked on ASP/SQL Server solutions and where you had to go with native code for high-performance

    Let's not forget that oh so common feature of Formatting Dates in ASP, you need to link native code for the "Format" function in VB (since FormatDate gives you a whopping 4 options) to get some even remotely as close to the power of the simple "date" function in PHP. Pretty shitty. God I hate ASP.

    --

    How could I say to men: "Speak louder, shout! For I am deaf!"? -Ludwig van Beethoven
  23. The GPL is not perfect by LostCluster · · Score: 2, Insightful

    As much as there are some FSF fans wish that the GPL was the only software license, it's not the one-size-fits-all solution for everybody. That's why the LGPL exists. That's why Creative Commons exists. That's why many common open-source programs have forked the GPL to make it their own.

    We can debate the finer points of whether such changes should be made or not, but let's not treat the GPL like it's a religion. It's not perfect.

  24. Re:Attention span too short to RTFM... by Anonymous Coward · · Score: 5, Informative

    Lots of reasons.

    Scales better with large numbers of simultaneous connections, larger tables, etc.

    Mature transactions. MySQL just gained these, but they aren't in heavy use. For applications where consistency matters, you need either transactions or locks. In MySQL you spend a lot more time coming up with locks and resolving deadlocks.

    Stored procedures. Sometimes it's useful to put code right in the database that can abort an invalid transaction or perform some other automated action. With MySQL you have to put this code in your PHP application, everywhere you access the database, rather than just once in the database. Much more code, much more debugging, and often much less efficient. The primary procedural language (PostgreSQL supports several) is Pl/PgSQL, essentially the same as Oracle's Pl/SQL. If you learn Postgres, you're well on your way to learning Oracle.

    Multi version concurrency, like the big commercial databases.

    A query optimizer that gets much better performance as your queries get complex. MySQL often can't do the same complex queries at all, and when it can does them naively at unusable speeds.

    Rule system, implementing views and other big-iron features, allowing applications to be simpler.

    Correct behavior under crash scenarios or disk full. I've never had PostgreSQL corrupt a database. MySQL will occaisionally, so your backups will get more exercise, and you'll have lost some data.

    subselects. You can often contort your MySQL queries to work around the lack of full subselects, but again, you do more work, and there isn't always a workaround.

    Foreign keys (implemented using triggers). These allow you to ensure that your data follows certain relationship rules (every sale points to a valid buyer for instance) at the database level. In MySQL you just have to make sure in PHP (outside the database) that you always generate good data.
    Mistakes happen, Postgres lets you program more defensively.

    Temporary tables. Very useful when building a complex operation inside a transaction.

    Security and authentication. Postgres has a very wide array of authentication methods, ranging from allow these IPs to do anything to local sockets, with SSL available to use to encrypt and authenticate as well.

    postgres is not as good at altering tables in production, especially if you've used the advanced features like triggers and rules (you may end up copying the data, deleting the tables, and reloading them, all inside a transaction of course).

  25. a little history by aint · · Score: 4, Informative

    MySQL client libraries have been included/bundled with PHP for a long time now, and MySQL support was enabled by default. As of PHP 5, these client libraries are no longer bundled, and MySQL is not enabled by default. This essentially makes MySQL support like any other PHP extension, nothing special. To install, simply download MySQL and configure PHP with --with-mysql. Not a big deal. You do the same for PgSQL, CURL, TIDY, GD, etc.

    An official FAQ on this issue can be seen here:
    http://us2.php.net/manual/en/faq.databases.php#faq .databases.mysql.php5

    You'll notice that the license issue isn't the only reason PHP 5 stopped bundling these MySQL libraries so I assume despite this license change PHP 5 will not bundle MySQL by default. One might say the marriage continues to exist...but that it's no longer "forced" onto people.

    1. Re:a little history by Permission+Denied · · Score: 4, Informative
      MySQL client libraries have been included/bundled with PHP for a long time now, and MySQL support was enabled by default.

      This was always a bad thing actually. If you actually used the library distributed with php, you'd often get subtle breakage because your server was a different version.

      Another thing to note is that MySQL may drop in popularity as PHP 5 increases in popularity. PHP 5 comes bundled with SQLite. SQLite does not require a server but works directly on database files, yet it provides most of the SQL features needed by most projects. SQLite recently added a last_insert_id() function for auto_increment fields; along with that, the only other mysql-specific features I commonly use are the SQL date arithmetic functions.

      Working directly on portable database files opens up a lot of possibilities: projects can simply distribute a tarball of php+sql databases and users can just untar it into a web directory to install without creating database users or running a table creation script. This is also great for web hosting as a provider can just say "store your databases in your home directory" and they don't have to worry about managing database users or moving around table files. Users can set up read-only mirrors of a site just by copying files rather than setting up replication to new sql server. This means that database-driven php sites can be mirrored as easily as html-only sites. SQLite can also be useful in this same way for non-php projects: you can create a database application using QT/GTK/WX in C/C++/Python/Perl and simply distribute source or binaries with a traditional installer or package manager. Users no longer have to set up a database server to use a simple database application.

  26. Re:hm? by kasperd · · Score: 3, Insightful

    MySQL changed the license of the client libraries to GPL from LGPL.

    Then how come nobody forked the libraries? You could take the new server (where it doesn't matter if the license is GPL or LGPL as you are not going to link it against anything) and the old libraries that were released under LGPL. Then modify those libraries as much as necesarry to work better with the new version of the server. And release the modified libraries under LGPL.

    --

    Do you care about the security of your wireless mouse?
  27. SQLite by ChopsMIDI · · Score: 2, Informative

    Well for those of you that don't like MySQL's restrictive licenses and want a quick little SQL db, PHP 5 is shipping with SQLite.

    An interesting little database to say the least.

    --

    How could I say to men: "Speak louder, shout! For I am deaf!"? -Ludwig van Beethoven
  28. Embedded MySQL? by randomErr · · Score: 2, Interesting

    So does this mean we could see an embedded version of MySQL in PHP? With PHP 5 embedding SQLLite MySQL stands to lose a good market share.

    --
    You say things that offend me and I can deal with it. Can you?
  29. Re: OT on programming by E_elven · · Score: 3, Insightful

    Writing good HTML -especially XHTML & CSS- is entirely different from writing code. HTML is a markup language, not a programming language, and excelling in it requires an entirely different skillset -it's more akin to designing a database than coding.

    Being able to write a hashing algorithm doesn't make you suitable for all coding jobs.. in my experience, there are high-level coders and low-level coders and both are necessary.

    This is not to say there aren't a lot of completely useless people out there -probably more doing ASP, VB and such than anything else, but a lot of PHP users, too. However, many if not most of the incompetent PHP coders are not making a career of it, unlike the ASP/MCSE people, but rather making their hobby/personal sites.

    --
    Marxist evolution is just N generations away!
  30. Very sad situation by biwillia · · Score: 5, Insightful

    For me the situation with MySQL's licensing shenanigans is quite sad. For small commercial software development shops who have been loyal to MySQL over the past few years, it's sad to have to say goodbye.

    It's fine that I have to pay money for a database server and all, but the GPL-licensed client library makes light usage of MySQL impossible for small software vendors. Even Microsoft SQL server has LGPL client libraries available (like freetds)! I can't see how MySQL can compete with other commerical software vendors that have less restrictive client-library licensing.

    For the MySQL folks to claim that the GPL is binding through a regular socket connection is quite a strech at best, and a slap in the face to those of us who write [L]GPL-licensed software.

  31. You're either trolling, or you're an idiot. by kyz · · Score: 2, Informative

    I can also quote. From the GPL, this time:

    However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

    This quite clearly states that core operating system functionality provided by the vendor is exempt from the GPL's linking clause, provided it's a de-facto part of the vendor's operating system. So, you can use all Win32 calls and all system DLLs on Windows in GPL software. You can compile and link against Solaris's non-free libc without worry.

    --
    Does my bum look big in this?
  32. bullshit by RelliK · · Score: 4, Informative
    The parent post is a troll.

    Postgresql is underdocumented, the MySQL online documentation simply excels.

    Complete and utter bullshit. How is this for documentation? There are also excellent books about it.

    There is no readily available workforce that has actual Postgresql knowledge. There are on the other hand buttloads of people available that can drive average sized MySQL installations for cheap money.

    That's a circular argument: everybody uses MySQL because everyone else does. (I can name a certain OS that benefits from this situation...) A good DBA would have no problem picking up PostgreSQL in a matter of days. I don't care about trained monkeys.

    There is no readily available workforce that has actual Postgresql knowledge. There are on the other hand buttloads of people available that can drive average sized MySQL installations for cheap money.

    Again bullshit. PostgreSQL supports multiple databases per server very well, including separate access controls for each db.

    Postgresql replication is regarded mostly experimental and is not properly integrated with the server. In larger MySQL deployments, replication is often used for load sharing (direct read only queries against any replica), and for backups.

    Replication (in both MySQL and PostgreSQL) is mostly useless since it is asynchronous. That is, when you commit a transaction you can not be sure if/when it gets propagated to the slaves. Therefore, if you read from a slave you can never be sure that it's up to date. I'll grant you that there are certain situations where this can be tolerated, but for high availability mission critical sites, it's useless. For that you need distributed transactions. The only open source DB that supports them is firebird.

    BTW, I'm glad you mentioned backups. PostgreSQL , just like any real database, can do on-line backups. However, to back up MySQL, you need to read-lock all the tables! The only way to get around that is by setting up replication and backing up the slave.

    Postgresql already has many features MySQL either just got with 4.1 or is planned to get in 5.x. That is useless, though, if you do not need these features, but need to deploy in a hosted standard environment, relying on the available workforce.

    Yeah, I'm sure you don't need transactions, subselects, triggers, stored procedures, or even *gasp* correct and predictable behaviour.

    But you are right about one thing: everybody uses MySQL because everybody else does.

    --
    ___
    If you think big enough, you'll never have to do it.
    1. Re:bullshit by jadavis · · Score: 2, Insightful
      Postgresql is underdocumented, the MySQL online documentation simply excels.


      Complete and utter bullshit. How is this for documentation? There are also excellent books about it.


      I am a strong advocate of PostgreSQL. However, to say that Postgres' docs are perfect is false. This has been discussed on the advocacy mailing lists before. PostgreSQL has great docs for people who need a reference and pretty much know where to look, and what they're looking for.

      In my opinion, PostgreSQL docs could be improved by:
      (1) Better search functionality
      (2) More tutorial-oriented material throughout the docs, like more examples at the end of sections, and more descriptions about why you'd find that particlar feature useful.
      (3) The website needs to be more portal-like, introducing you to all the postgresql resources available, and helping you get going.

      MySQL has paid maintainers to take care of all of that. PostgreSQL doesn't. PostgreSQL only really has coders, and if I'm not mistaken, only one major advocacy coordinator, Josh Berkus, who I met at Linuxworld in SF, who does a great job, but is only one person.

      It just takes some more people that know the database well and have some basic web experience to put together some great things.

      PostgreSQL is, in my opinion, the best database for most RDBMS tasks. However, I know how I feel when I go to a software site and i just want to check something out. I don't know whether it's the best or not, so I want to try it. It can be imtimidating when nothing has context. Lots of context is what makes docs easy to understand for a beginner.

      That takes people that PostgreSQL doesn't currently have yet. Public relations and marketing are expensive, but MySQL can pay those guys.

      Of course PostgreSQL is doing just fine by attracting users away from Oracle and SQL Server, and the people that have serious enough database requirements to actually look. The code quality, and the quality of the coders and the steering, and the project management is amazing. And it attracts more coders because they retain copyright on their work, unlike MySQL coders.
      --
      Social scientists are inspired by theories; scientists are humbled by facts.
  33. Exception? by lpangelrob2 · · Score: 3, Funny
    Crap, I knew this was gonna happen....
    catch (Exception $mysqlException) {
    echo $mysqlException->getMessage();
    }
    All right, should be fixed. :-)
  34. Problem with PHP License by bellings · · Score: 3, Insightful

    So, MySQL is distributed under the GPL, and PHP is distributed under a license incompatible with the GPL.

    How is this MySQL's problem?

    --
    Slashdot is jumping the shark. I'm just driving the boat.
    1. Re:Problem with PHP License by The_DOD_player · · Score: 3, Insightful

      Well.. It is because MySQL recently changed its license to GPL from LGPL, because PHP can do very well without MySQL, (yes, there are severel good alternatives to MySQL around), and because (and MySQL A/B KNOWS this) it might even be fair to say, that MySQL owes its current marketshare to PHP.

  35. MySQL writes exceptions for PHP by Anonymous Coward · · Score: 2, Funny

    So that explains all those exceptions I see on articles linked from here.... And all this time I just thought they were slashdotted!

  36. This licensing stuff is getting ridiculous by TheLink · · Score: 3, Funny

    Is anyone tempted to release some cool software/music/stuff/work with a default restrictive licenses (must pay etc etc), but have some exceptions like:

    You are free to distribute Derivative/Identical Works as long as:
    1) Every Feb 1st and August 17th you go to a public area with at least 20 strangers present, stand on one leg and yell "foobar bubble bubble!" including the double quotes.
    Or
    2) Every full moon you infringe the MySQL and Microsoft software licenses, and email them a goatse.cx/tubgirl pic.
    Or
    3) You do an anonymous, random (and different) quirky good deed to a random (and different) stranger every month - only counts if the target will likely think it is good.

    AND you claim that Al Gore is the actual author of the works.

    Sheesh.

    --
  37. Re:What people fail to mention is.... by scheme · · Score: 2, Interesting
    First off, almost all those things you mention aren't an issue in MySQL anymore. Maybe back in 3.23, but as far as 5.0 and 4.1 go, they've disappeared. MySQL has always been built with speed in mind. It deviates from the SQL standard when necessary and has been slower to implement all of the standard, but! Everything that's implemented is done with speed in mind. So it has a huge speed advantage over almost every database out there.

    Why do mysql supporters always bring up how version 4.1 or 5 will support a feature. It's utter bs to compare features that are available on a stable release that have been around for several years with features that are in either in alpha code (mysql 4.1) or a future version (mysql 5.0). Not to mention that features that were supposed to have been in mysql 4.0 have been pushed back to 4.1 and may get pushed back again.

    By that logic, postgresql has point in time restore (PITR) support which mysql hasn't even mentioned. PITR lets you restore the database to a given point in time. E.g. your program went crazy and deleted a bunch of entries that you need. With PITR you restore the database back to just before the data was deleted. Postgresql 7.5 is going to support this.

    Incidentally, mysql's speed seems to be missing if you start looking at performance with multiple clients querying the database or when queries get more complicated. Mysql also tends to be okay with incorrect or wrong behaviour if that increases speed.

    --
    "When you sit with a nice girl for two hours, it seems like two minutes. When you sit on a hot stove for two minutes, it
  38. Actually money grubbing by scheme · · Score: 3, Informative
    It's companies like this that really have the confidence and trust of the 'mass' market. By openly supporting and helping people that will for the most part not give them any return they really show up the likes of SCO with all the crap they have been shovelling out of their head office.

    What are you talking about? MySQL AB changed the client libs from LGPL to GPL. That messed up a lot of things but it theoretically generates more commerical licenses for MySQL AB.

    Add in the unusual gpl interpetation by MySQL AB where programs that use mysql for commericial use are required to get the commericial license and where distribution is interpeted to be copying the program between servers even within the same company and you have a company that is doing it's best to create FUD and force companies into buying commericial mysql licenses.

    Oh yeah, the developers made vague noises about how people reverse engineering the client/server protocol and creating an alternate license may get sued by MySQL AB.

    How's that for good company policy?

    --
    "When you sit with a nice girl for two hours, it seems like two minutes. When you sit on a hot stove for two minutes, it
  39. mod parent up by Douglas+Simmons · · Score: 2, Funny
    right on man, i hate jerkoffs like this guy. The stigma gets perpetuated when people separate psychological from somatic diseases, make dumbass jokes, etc.

    By the way, bipolar disorder has a mortality rate of 20% which is higher than those of most heart diseases and cancer. In other words, if you have a bipolar kid and a kid with cancer, it is likely that the crazy kid will outlive the cancer boy. And manic depression is a much easier disorder to deal with than schizophrenia, despite what you may have deduced from watching A Beautiful Mind. If you're schizo, you're basically fucked.

  40. Let's improve the discussion by citing specifics. by jbn-o · · Score: 3, Insightful

    Comparing anything to perfection is unproductive; it serves to reinforce our biases by presenting us with a false dichotomy (you can have whatever argument is being proposed or you can have perfection, which is never available). Let's look at specific claims.

    As much as there are some FSF fans wish that the GPL was the only software license [...]

    Please name who these people are and cite the evidence that gives you this impression.

    [...] it's not the one-size-fits-all solution for everybody. That's why the LGPL exists. That's why Creative Commons exists. That's why many common open-source programs have forked the GPL to make it their own.

    That explanation barely gets into why the LGPL exists. The Creative Commons doesn't recommend their licenses for software. The GNU project started over a decade before the open source movement began and the GNU project was founded to talk about software freedom, not a development methodology. I'd also be interested to learn who, besides the Affero General Public License has "forked" the GNU GPL. The Creative Commons has listed the GNU GPL, not forked it.

    [...] but let's not treat the GPL like it's a religion. It's not perfect.

    Who, exactly, is doing this and what, exactly, are they saying?

  41. Re:What people fail to mention is.... by Cajal · · Score: 2, Insightful

    Why do so many MySQL zealots keep claiming that 4.1 and 5.0 are ready for production? Even MySQL AB doesn't make such a claim. Their web site clearly states:

    Production 4.0.18
    Development 4.1.1
    Preview 5.0.0

    So saying that "new installations should use 4.1.x" is like saying that everyone should have run Linux 2.5.x, or the latest CVS version of Apache.

  42. hmm.. bsd license... by ShadowRage · · Score: 2, Interesting

    isnt the bsd license opensource?

    because.. this could be a loophole in the license.. since a company can take bsd source code and close source it.. thus using mysql libraries in their proprietary works.. right?

    correct me if I'm wrong.. I dont focus on licensing issues much.

  43. Open Source, GPL and multiple licenses by greggman · · Score: 2, Interesting

    Someone explain to me how this all works.

    One of the big supposedly pluses to GPLed code is that many people can contibute. So, if I GPL the code AND try to release it under another license then the non-GPLed version can not have any of the benefits of contributions, bug fixes, etc from the GPLed version since those contributions are GPLed and not available under the other license. Those contributions belong to the individual contributors, not the person or team that made the original code.