Being able to use an Open Source DBMS to manage your data is nice, but what good would it be if you can't easily access it from your applications? One key factor to the popularity of MySQL is probably its wide range of available language bindings, which started with support for C, PHP and Perl from early on.
I've tried to gather a list of languages and their respective MySQL drivers/modules below. It's by no means complete or exhaustive, but I think I covered quite a lot of popular as well as exotic programming languages.
There is a number of connectors which are actually developed by the Sun Database Group (aka MySQL) itself and that are ready to use:
- Connector/ODBC - Standardized database driver Windows, Linux, Mac OS X, and Unix platforms.
- Connector/J - Standardized database driver for Java platforms and development.
- Connector/Net - Standardized database driver for .NET platforms and development.
- Connector/MXJ - MBean for embedding the MySQL server in Java applications.
- MySQL native driver for PHP - mysqlnd - The MySQL native driver for PHP is an additional, alternative way to connect from PHP 6 to the MySQL Server 4.1 or newer.
- libmysql - The original implementation of the MySQL Client/Server protocol (in C). This library is the basis for a large number of client libraries for other languages.
In addition to the above, there are several other connectors developed by Sun/MySQL, which are still under development:
But it's not only us who develop language bindings for the MySQL server. There is an abundance of drivers that are developed and maintained by the Community, independently from Sun/MySQL (but sometimes with support or guidance from MySQL engineers). The list below is not sorted in any particular order other than the sequence in how I found them over time:
I probably forgot some other drivers/bindings - if you have any more to add, please let me know!
And if you'd like to create your own implementation for your favourite language: the protocol is documented here and here. Jan's additional notes may also be helpful to get you started.