An open-source database can be copied freely, so the obvious problem is how to make money from it, and the obvious answer is to sell support, which customers treat as optional and skip.

MySQL instead offered the same database under two contracts. Under the GNU GPL it was free, provided users shared their changes; under a commercial license it carried a fee but let a company embed it without open-sourcing.

CEO Mårten Mickos explained it simply: the dual license works because it lets the world decide how it wants to use the software, and the company has said about 60% of revenue came from commercial licenses.

The arrangement converted the very objection to using free software into a purchase decision: a firm that kept its code closed had to buy in, and everyone else adopted MySQL for nothing.

One codebase, two licenses: GPL free, paid to embed

The GPL keeps the default free and forces anyone who embeds without paying to open source.

The commercial license is not for the software, it is for the freedom to keep your code closed.

Letting the user pick flips the cost objection into a self-selected buy signal.

If your product must be free, sell the freedom not to be bound by the free license, and let each user choose the contract instead of picking one for everyone.

Dual licensing became the template for commercial open source, seen in Berkeley DB, Trolltech, and later Red Hat's subscription and support model. Sun acquired MySQL AB in 2008 for about a billion dollars and Oracle absorbed it afterward; MySQL went on to power a large share of the web, and the licensing design became a standard strategic answer to the free-product revenue question.

FOLLOW THE EVIDENCE

The sources

  1. MySQL CEO: 'We're as greedy as anyone else' zdnet.com
  2. MySQL's open challenge infoworld.com