1.4 MySQL Dual Licensing
MySQL AB software is covered by licenses that govern the conditions under which it can be used. This section describes those conditions.
MySQL AB owns the copyright to the MySQL source code. This means that MySQL AB can distribute MySQL under several different licenses, depending on the needs of the user. Currently, two types of licenses are used to distribute the MySQL database server:
The GNU General Public License (GPL) is intended for open source usage of MySQL, where applications based on MySQL are also distributed under the GPL.
Commercial licensing is intended for commercial usage of MySQL, where applications based on MySQL can be distributed without publishing the source.
In some cases, most notably for programs released under Open Source licenses other than the GPL, exceptions are granted. However, the two license types discussed here are the ones used in almost all cases. They are the ones you need to understand for purposes of studying for the exam.
The MySQL dual licensing covers these products:
All the MySQL-specific sources in the server.
The MySQL client interfaces: the libmysqlclient C client library, MySQL Connector/ODBC, and MySQL Connector/J.
Client programs such as MySQLCC (MySQL Control Center), mysql, mysqladmin, and mysqldump.
Dual licensing does not cover documentation produced by MySQL AB. Documentation is covered by copyright.
1.4.1 Use of MySQL Under the General Public License
The GNU General Public License (GPL) was created to govern the rules of using free software (where "free" refers to liberty, not price). For more information on the GPL, refer to http://www.gnu.org/licenses.
Quoting the philosophy of free software from http://www.gnu.org/philosophy/free-sw.html:
Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:
The freedom to run the program, for any purpose (freedom 0).
The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
The freedom to redistribute copies so you can help your neighbor (freedom 2).
The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
Many developers want to pose restrictions on the usage of their programs with regard to the freedoms of software as defined by http://www.gnu.org. In such cases, the developers prefer not to abide by the GPL in their usage of MySQL and must therefore purchase commercial licenses from MySQL AB.
You can think of MySQL AB offering you two choices when it comes to the cost of a MySQL license:
You pay a price in money, as for other commercial software.
You pay a price in offering your users the same freedoms to use your programs that MySQL AB offers you through the GPL.
As a consequence of the GPL, MySQL is also free of charge for those who never copy, modify, or distribute the MySQL software. As long as you never distribute (internally or externally) the MySQL Software in any way, you're free to use it for powering your application, whether or not your application is under GPL license.
1.4.2 Use of MySQL with a Commercial License
If you use MySQL software but don't want to adhere to the GPL, you can purchase a commercial license from MySQL AB.
If your application isn't licensed under GPL or a compatible Open Source Initiative (OSI) license approved by MySQL AB and you intend to distribute MySQL software (either internally or externally), you must first obtain a commercial license for the MySQL software in question. More specifically:
If you include the MySQL server in your non-open source application, you need a commercial license for the MySQL server.
If you include one or more of the MySQL drivers in your non-open source application so that your application can run with MySQL, you need a commercial license for the drivers in question. The MySQL drivers currently include the libmysqlclient C client library, MySQL Connector/ODBC, and MySQL Connector/J.
If you use MySQL software within your organization and you don't want to risk having it fall under the GPL license, you should purchase a commercial license.
Many users opt for the commercial license simply because, under it, MySQL AB takes responsibility for its products. Under the GPL license, there are no warranties or representations from the developer, which is MySQL AB in this case.