26.5. MySQL 接続インターフェース

MySQL の特徴の 1 つにも、多くのプログラミング言語とのインターフェースをサポートしていることがあげられます。C や C++ のみならず、Tcl/Tk、Perl、Python、Eiffel のインターフェースなども提供されており、アプリケーションに容易に組み込むことが可能です。また、ODBC や JDBC のドライバも提供されています。Web サーバーとの連携においては、CGI からの利用はもちろんのこと、Apache Web サーバーのモジュールとして提供されている mod_php や mod_perl からの利用も可能です。Linux + Apache + MySQL + PHP の組み合わせによる HTTP サービスは世界中ですでに多くの実績を持ちます。このように、MySQL は多くのプログラミング言語とのインターフェースをサポートしており、非常に幅広い開発環境で利用できます。MySQL で利用可能な主な言語インターフェースには以下があります。プログラミングの詳細や各 API の入手方法などは、MySQL AB で公開されているドキュメントや専門書籍等を参照してください。

C API

C 言語用のインターフェースとしては、C API コードが mysqlclient ライブラリに格納され提供されています。C API は MySQL チームによる開発でもっとも豊富です。他の言語のインタフェースも C API をベースにしています。詳細なドキュメントが MySQL AB で公開されています。

PHP API

PHP は、MySQL とのインターフェースを標準で備えており、mysql.so、 mysqli.so、pdo_mysql.so というモジュールで提供されています。このモジュールは、MySQL のデータベースを操作するための多くの関数が含まれています。Turbolinux 11 Server では、/usr/lib/php/extensions/no-debug-zts/ と /usr/lib/php/extensions/no-debug-non-zts/ ディレクトリ以下にインストールされ、PHP の設定ファイル(/etc/php.d/mysql.ini、/etc/php.d/mysqli.ini)にモジュールを使用するための以下の設定がそれぞれ記述されています。

extension=mysql.so
extension=mysqli.so
Perl API

DBI/DBD クライアントインターフェースにより提供されます。Turbolinux 11 Server には perl-DBD-MySQL が収録されています。

C++ API

MySQL++ クライアントインターフェースにより提供されます。

Python API

MySQLdb により Python DB API バージョン2.0 準拠のインターフェースが提供されます。

Tcl API

MySQLtcl クライアントインターフェースにより提供されます。

エッフェルラッパー

Eiffel MySQL は、Eiffel プログラミング言語によるクライアントインターフェースです。

プログラム開発ユーティリティ

msql2mysql や mysql_config といったプログラミングに有用なシェルスクリプトが提供されています。