I think MySQL has been intentionally FUD'ing a bit in this
area.
I belive that the common interpretation is:
- if you you ship MySQL code with your code you need to
either be GPL/FOSS or pay for a commercial license
- if you don't ship any MySQL code then they can not
claim any GPL issues at all
This is not what MySQL say in the above link.
"If you develop and distribute a commercial application and as part of
utilizing your application, the end-user must download a copy of MySQL;
for each derivative work, you (or, in some cases, your end-user) need a
commercial license for the MySQL server and/or MySQL client libraries."
But as I understand the GPL license then it is strictly about
distribution. If you don't distribute any GPL software, then
GPL does not apply to you.
If the MySQL interpretation above was correct, then any software
for Linux would be be GPL'ed. It is rather obvious that a
Linux binary requires the user to install Linux.
The licence terms are mostly dependent on the definition of "linking". If
your application links with MySQL code then it is required to be made
available under the same terms. The important libraries for linking with
on Linux, such as glibc, are licensed under the LGPL rather than the GPL.
You are right though, it is in MySQL's interest to promote a very broad
definition of "linking". The MySQL JDBC connector used to be available
under the LGPL but was changed to GPL a few years ago, presumably so that
they could sell more commercial licences.
Beyond not distributing MySQL (and, more importantly, the JDBC driver)
with your application, to be extra safe you should probably also ensure
that your code makes no reference to anything MySQL-related (including
JDBC URLs and driver strings). If your application uses the standard JDBC
API, and will work with other RDBMS options, then if one of your users
downloads MySQL and its JDBC driver and configures your app to use it, I
can't see how you can be held responsible for "linking". Anything less
clearly separated is a grey area.
Easiest solution: use PostgreSQL and avoid the hassle. Oracle Express
Edition (or the equivalent free version of SQL Server or DB2) might also
be sufficient but it is a bit heavyweight.
Dan.