目次
MySQL Connector はクライアントプログラムに MySQL サーバーへの接続を提供します。 API は、クラシック MySQL プロトコル または X プロトコル を使用した MySQL リソースへの低レベルのアクセスを提供します。 コネクタと API の両方を使用すると、ODBC、Java (JDBC)、C++、Python、Node.js、PHP、Perl、Ruby、C などの別の言語または環境から MySQL ステートメントに接続して実行できます。
MySQL Connector
Oracle では多数のコネクタを開発しています。
Connector/C++ により、C++ アプリケーションは MySQL に接続できます。
Connector/J は標準 JDBC (Java Database Connectivity) API を使用して、Java アプリケーションから、MySQL に接続するためのドライバサポートを提供します。
-
Connector/NET を使用すると、開発者は MySQL に接続する .NET アプリケーションを作成できます。Connector/NET は、完全に機能する ADO.NET インタフェースを実装し、ADO.NET 対応ツールでの使用をサポートします。 Connector/NET を使用するアプリケーションは、サポートされている任意の .NET 言語で記述できます。
MySQL for Visual Studio は、Connector/NET および Microsoft Visual Studio 2012、2013、2015 および 2017 で動作します。MySQL for Visual Studio は、Visual Studio から MySQL オブジェクトおよびデータへのアクセスを提供します。 Visual Studio パッケージとして、サーバーエクスプローラに直接統合され、新しい接続を作成して MySQL データベースオブジェクトを操作できます。
Connector/ODBC は ODBC (Open Database Connectivity) API を使用して、MySQL に接続するためのドライバサポートを提供します。 Windows、Unix および macOS プラットフォームからの ODBC 接続をサポートしています。
Connector/Python は Python DB API バージョン 2.0 に準拠する API を使用して、Python アプリケーションから、MySQL に接続するためのドライバサポートを提供します。 追加の Python モジュールまたは MySQL クライアントライブラリは必要ありません。
Connector/Node.js
には、X プロトコル を使用して Node.js アプリケーションから MySQL に接続するための非同期 API が用意されています。 Connector/Node.js では、データベースセッションおよびスキーマの管理、MySQL ドキュメントストアコレクションの操作および RAW SQL ステートメントの使用がサポートされています。
MySQL C API
C アプリケーション内で MySQL をネイティブに使用するための直接アクセスのために、C API は libmysqlclient
クライアントライブラリを介して MySQL クライアント/サーバープロトコルへの低レベルのアクセスを提供します。 これは、MySQL サーバーのインスタンスに接続するために使用する主な方法で、MySQL コマンド行クライアントと、ここで詳しく説明している多くの MySQL Connector およびサードパーティー API のどちらにも使用されています。
libmysqlclient
は、MySQL ディストリビューションに含まれています。
MySQL C API Implementationsも参照してください。
C アプリケーションから MySQL にアクセスするか、この章の Connector や API でサポートされていない言語で、MySQL へのインタフェースを構築するには、C API から始めます。 このプロセスに役立つ、多くのプログラマ向けユーティリティーがあります。セクション4.7「プログラム開発ユーティリティ」を参照してください。
サードパーティー MySQL API
この章で説明している残りの API は、特定のアプリケーション言語から MySQL へのインタフェースを提供します。 これらのサードパーティーソリューションは Oracle で開発されていないか、サポートされていません。 それらの使用と機能に関する基本情報は、参考目的でのみここで提供しています。
すべてのサードパーティー言語 API は、libmysqlclient
を使用するか、または ネイティブドライバを実装するか、2 つの方法のいずれかを使用して開発されています。 2 つのソリューションには異なるメリットがあります。
libmysqlclient
は MySQL クライアントアプリケーションと同じライブラリを使用するため、MySQL と完全に互換性があります。 ただし、機能セットは、libmysqlclient
から公開された実装とインタフェースに制限され、データがネイティブ言語と MySQL API コンポーネント間でコピーされるため、パフォーマンスが低下することがあります。ネイティブドライバはホスト言語または環境内に完全に収まる MySQL ネットワークプロトコルの実装です。 ネイティブドライバはコンポーネント間でのデータのコピーが少ないため高速であり、標準 MySQL API によって使用できない高度な機能を提供できます。 さらに、ネイティブドライバコンポーネントの構築には、MySQL クライアントライブラリのコピーが必要ないため、ネイティブドライバは、エンドユーザーにとって構築とデプロイが簡単です。
表29.1「MySQL API およびインタフェース」 には、MySQL で使用可能なライブラリおよびインタフェースの多くがリストされています。
表 29.1 MySQL API およびインタフェース
環境 | API | 型 | メモ |
---|---|---|---|
Ada | GNU Ada MySQL バインディング | libmysqlclient |
GNU Ada 用の MySQL バインディングに関するドキュメントを参照してください。 |
C | C API | libmysqlclient |
MySQL 8.0 C API Developer Guideを参照してください。 |
C++ | Connector/C++ | libmysqlclient |
MySQL Connector/C++ 8.0 Developer Guideを参照してください。 |
MySQL++ | libmysqlclient |
「MySQL++ web サイト」を参照してください。 | |
MySQL wrapped | libmysqlclient |
「MySQL wrapped」を参照してください。 | |
Cocoa | MySQL-Cocoa | libmysqlclient |
Objective-C Cocoa 環境と互換性があります。 http://mysql-cocoa.sourceforge.net/を参照してください |
D | MySQL for D | libmysqlclient |
MySQL for D を参照してください。 |
Eiffel | Eiffel MySQL | libmysqlclient |
セクション29.13「MySQL Eiffel ラッパー」を参照してください。 |
Erlang | erlang-mysql-driver |
libmysqlclient |
「erlang-mysql-driver 」を参照してください。 |
Haskell | Haskell MySQL バインディング | ネイティブドライバ | Brian O'Sullivan のピュア Haskell MySQL バインディングに関するドキュメントを参照してください。 |
hsql-mysql |
libmysqlclient |
「Haskell 用の MySQL ドライバ」を参照してください。 | |
Java/JDBC | Connector/J | ネイティブドライバ | MySQL Connector/J 5.1 Developer Guideを参照してください。 |
Kaya | MyDB | libmysqlclient |
MyDB に関するドキュメントを参照してください。 |
Lua | LuaSQL | libmysqlclient |
LuaSQL を参照してください。 |
.NET/Mono | Connector/NET | ネイティブドライバ | 「MySQL Connector/NET Developer Guide」を参照してください。 |
Objective Caml | OBjective Caml MySQL バインディング | libmysqlclient |
Objective Caml 用の MySQL バインディングに関するドキュメントを参照してください。 |
Octave | GNU Octave 用データベースバインディング | libmysqlclient |
GNU Octave 用データベースバインディングに関するドキュメントを参照してください。 |
ODBC | Connector/ODBC | libmysqlclient |
「MySQL Connector/ODBC Developer Guide」を参照してください。 |
Perl |
DBI /DBD::mysql
|
libmysqlclient |
セクション29.9「MySQL Perl API」を参照してください。 |
Net::MySQL |
ネイティブドライバ | CPAN の「Net::MySQL 」を参照してください。 |
|
PHP |
mysql 、ext/mysql インタフェース (非推奨) |
libmysqlclient |
「Original MySQL API」を参照してください。 |
mysqli 、ext/mysqli インタフェース |
libmysqlclient |
「MySQL Improved Extension」を参照してください。 | |
PDO_MYSQL |
libmysqlclient |
「MySQL Functions (PDO_MYSQL)」を参照してください。 | |
PDO mysqlnd | ネイティブドライバ | ||
Python | Connector/Python | ネイティブドライバ | 「MySQL Connector/Python Developer Guide」を参照してください。 |
Python | Connector/Python C 拡張機能 | libmysqlclient |
「MySQL Connector/Python Developer Guide」を参照してください。 |
MySQLdb | libmysqlclient |
セクション29.10「MySQL Python API」を参照してください。 | |
Ruby | MySQL/Ruby | libmysqlclient |
libmysqlclient を使用します。 セクション29.11.1「MySQL/Ruby API」を参照してください。 |
Ruby/MySQL | ネイティブドライバ | セクション29.11.2「Ruby/MySQL API」を参照してください。 | |
Scheme | Myscsh |
libmysqlclient |
Myscsh に関するドキュメントを参照してください。 |
SPL | sql_mysql |
libmysqlclient |
SPL の sql_mysql を参照してください。 |
Tcl | MySQLtcl | libmysqlclient |
セクション29.12「MySQL Tcl API」を参照してください。 |