제23장 Connector 및 API
목차
- 23.1 MySQL Connector / ODBC
- 23.2 MySQL Connector / Net
- 23.3 MySQL Connector / J
- 23.4 MySQL Connector / C ++
- 23.5 MySQL Connector / C
- 23.6 MySQL Connector / Python
- 23.7 임베디드 MySQL 서버 라이브러리 libmysqld
- 23.8 MySQL C API
- 23.9 MySQL PHP API
- 23.10 MySQL Perl API
- 23.11 MySQL Python API
- 23.12 MySQL Ruby API
- 23.13 MySQL Tcl API
- 23.14 MySQL Eiffel 래퍼
MySQL Connector는 클라이언트 프로그램에 MySQL 서버에 대한 연결을 제공합니다. API는 MySQL 프로토콜 및 MySQL 리소스에 대한 낮은 레벨의 액세스를 제공합니다. Connector 및 API 모두 ODBC, Java (JDBC), Perl, Python, PHP, Ruby 및 네이티브 C와 내장 MySQL 인스턴스 등의 다른 언어 나 환경에서 MySQL 문에 연결하여 실행할 수 있습니다 .
Connector 버전 번호는 MySQL Server 버전 번호와 관계가 없습니다. 표 23.2 "MySQL Connector 버전과 MySQL Server 버전" 을 참조하십시오.
MySQL Connector
Oracle에서는 다수의 커넥터를 개발하고 있습니다.
Connector / ODBC 는 ODBC (Open Database Connectivity) API를 사용하여 MySQL에 연결하기위한 드라이버 지원을 제공합니다. 지원은 Windows, Unix 및 OS X 플랫폼에서 ODBC 연결에 사용할 수 있습니다.
Connector / Net 을 통해 개발자는 MySQL에 연결하는 .NET 응용 프로그램을 만들 수 있습니다. Connector / Net은 완전히 기능하는 ADO.NET 인터페이스를 구현하고 ADO.NET 지원 도구 사용하기위한 지원을 제공합니다. Connector / Net을 사용하는 응용 프로그램은 지원되는 모든 .NET 언어로 작성할 수 있습니다.
MySQL Visual Studio Plugin 은 Connector / Net 및 Visual Studio 2005와 함께합니다. 이 플러그인은 MySQL DDEX 공급 업체이며 이것은 Visual Studio에서 사용 가능한 스키마 및 데이터 조작 도구를 사용하여 MySQL 데이터베이스에 오브젝트를 작성하고 편집 할 수있는 것을 의미합니다.
Connector / J 는 표준 JDBC (Java Database Connectivity) API를 사용하여 Java 응용 프로그램에서 MySQL에 연결하기위한 드라이버 지원을 제공합니다.
Connector / Python 은 Python DB API 버전 2.0 을 준수하는 API를 사용하여 Python 응용 프로그램에서 MySQL에 연결하기위한 드라이버 지원을 제공합니다. 추가 Python 모듈 또는 MySQL 클라이언트 라이브러리가 필요하지 않습니다.
Connector / C ++ 통해 C ++ 응용 프로그램은 MySQL에 연결할 수 있습니다.
Connector / C 는 C 응용 프로그램에 사용되는 MySQL 클라이언트 라이브러리 (
libmysqlclient
)의 독립형 대안입니다.
MySQL C API
C 응용 프로그램에서 MySQL을 기본적으로 사용하기에 직접 액세스에는 두 가지 방법이 있습니다.
C API 는
libmysqlclient
클라이언트 라이브러리를 통해, MySQL 클라이언트 / 서버 프로토콜에 대한 저수준 액세스를 제공합니다. 이것은 MySQL 서버 인스턴스에 연결하는 데 사용하는 주요 방법으로 MySQL 명령 행 클라이언트와 여기에서 설명하고있는 많은 MySQL Connector 및 타사 API에 모두 사용되고 있습니다.libmysqlclient
는 MySQL 배포 및 MySQL Connector / C 배포에 포함되어 있습니다.libmysqld
은 MySQL 서버 인스턴스를 C 응용 프로그램에 통합 할 수있는 임베디드 MySQL 서버 라이브러리입니다.libmysqld
는 MySQL 배포판에 포함되지만 MySQL Connector / C 배포에 포함되지 않습니다.
섹션 23.8.1 "MySQL C API의 구현" 을 참조하십시오.
C 응용 프로그램에서 MySQL에 액세스하거나이 장의 Connector와 API에서 지원되지 않는 언어에서 MySQL에 인터페이스를 구축하려면 C API 시작합니다. 이 프로세스에 도움이되는 많은 프로그래머 유틸리티가 있습니다. 섹션 4.7 "MySQL 프로그램 개발 유틸리티" 를 참조하십시오.
Third-Party MySQL API
이 장에서 설명하는 나머지 API는 특정 응용 프로그램 언어에서 MySQL에 대한 인터페이스를 제공합니다. 이러한 타사 솔루션은 Oracle에서 개발되어 있지 않거나 지원되지 않습니다. 그 사용과 기능에 대한 기본 정보는 참조 목적으로 만 여기에서 제공합니다.
모든 타사 언어 API는 libmysqlclient
을 사용하거나 기본 드라이버를 구현하거나 두 가지 방법 중 하나를 사용하여 개발되고 있습니다. 두 솔루션에는 다른 장점이 있습니다.
libmysqlclient
은 MySQL 클라이언트 응용 프로그램과 동일한 라이브러리를 사용하기 때문에 MySQL과 완전히 호환됩니다. 그러나 기능 세트는libmysqlclient
에서 공개 된 구현과 인터페이스에 제한되어 데이터가 기본 언어와 MySQL API 구성 요소간에 복사되기 때문에 성능이 저하 될 수 있습니다.기본 드라이버는 호스트 언어 또는 환경에 완전히 장착 될 때 MySQL 네트워크 프로토콜의 구현입니다. 기본 드라이버는 구성 요소 간의 데이터 복사가 적기 때문에 고속이며 표준 MySQL API를 통해 사용할 수없는 고급 기능을 제공합니다. 또한 네이티브 드라이버 구성 요소의 구축에는 MySQL 클라이언트 라이브러리의 복사본이 필요 없기 때문에 기본 드라이버는 최종 사용자에게 구축 및 배포가 간단합니다.
표 23.1 "MySQL API 및 인터페이스" 에 MySQL에서 사용할 수있는 많은 라이브러리와 인터페이스를 나열하고 있습니다. 표 23.2 "MySQL Connector 버전과 MySQL Server 버전" 각 커넥터가 지원하는 MySQL 서버 버전을 보여줍니다.
Table 23.1 MySQL APIs and Interfaces
Environment | API | Type | Notes |
---|---|---|---|
Ada | GNU Ada MySQL Bindings | libmysqlclient | See MySQL Bindings for GNU Ada |
C | C API | libmysqlclient | See Section 23.8, “MySQL C API”. |
C | Connector/C | Replacement for libmysqlclient | See MySQL Connector/C Developer Guide. |
C++ | Connector/C++ | libmysqlclient | See MySQL Connector/C++ Developer Guide. |
| MySQL++ | libmysqlclient | See MySQL++ Web site. |
| MySQL wrapped | libmysqlclient | See MySQL wrapped. |
Cocoa | MySQL-Cocoa | libmysqlclient | Compatible with the Objective-C Cocoa environment. See http://mysql-cocoa.sourceforge.net/ |
D | MySQL for D | libmysqlclient | See MySQL for D. |
Eiffel | Eiffel MySQL | libmysqlclient | See Section 23.14, “MySQL Eiffel Wrapper”. |
Erlang | erlang-mysql-driver | libmysqlclient | See
erlang-mysql-driver . |
Haskell | Haskell MySQL Bindings | Native Driver | See Brian O'Sullivan's pure Haskell MySQL bindings. |
| hsql-mysql | libmysqlclient | See MySQL driver for Haskell . |
Java/JDBC | Connector/J | Native Driver | See MySQL Connector/J Developer Guide. |
Kaya | MyDB | libmysqlclient | See MyDB. |
Lua | LuaSQL | libmysqlclient | See LuaSQL. |
.NET/Mono | Connector/Net | Native Driver | See MySQL Connector/Net Developer Guide. |
Objective Caml | OBjective Caml MySQL Bindings | libmysqlclient | See MySQL Bindings for Objective Caml. |
Octave | Database bindings for GNU Octave | libmysqlclient | See Database bindings for GNU Octave. |
ODBC | Connector/ODBC | libmysqlclient | See MySQL Connector/ODBC Developer Guide. |
Perl | DBI /DBD::mysql | libmysqlclient | See Section 23.10, “MySQL Perl API”. |
| Net::MySQL | Native Driver | See
Net::MySQL
at CPAN |
PHP | mysql , ext/mysql interface
(deprecated) | libmysqlclient | See Original MySQL API. |
| mysqli , ext/mysqli interface | libmysqlclient | See MySQL Improved Extension. |
| PDO_MYSQL | libmysqlclient | See MySQL Functions (PDO_MYSQL). |
| PDO mysqlnd | Native Driver | |
Python | Connector/Python | Native Driver | See MySQL Connector/Python Developer Guide. |
Python | Connector/Python C Extension | libmysqlclient | See MySQL Connector/Python Developer Guide. |
| MySQLdb | libmysqlclient | See Section 23.11, “MySQL Python API”. |
Ruby | MySQL/Ruby | libmysqlclient | Uses libmysqlclient . See
Section 23.12.1, “The MySQL/Ruby API”. |
| Ruby/MySQL | Native Driver | See Section 23.12.2, “The Ruby/MySQL API”. |
Scheme | Myscsh | libmysqlclient | See
Myscsh . |
SPL | sql_mysql | libmysqlclient | See
sql_mysql
for SPL. |
Tcl | MySQLtcl | libmysqlclient | See Section 23.13, “MySQL Tcl API”. |
Table 23.2 MySQL Connector Versions and MySQL Server Versions
Connector | Connector version | MySQL Server version |
---|---|---|
Connector/C | 6.1.0 GA | 5.6, 5.5, 5.1, 5.0, 4.1 |
Connector/C++ | 1.0.5 GA | 5.6, 5.5, 5.1 |
Connector/J | 5.1.8 | 5.6, 5.5, 5.1, 5.0, 4.1 |
Connector/Net | 6.5 | 5.6, 5.5, 5.1, 5.0 |
Connector/Net | 6.4 | 5.6, 5.5, 5.1, 5.0 |
Connector/Net | 6.3 | 5.6, 5.5, 5.1, 5.0 |
Connector/Net | 6.2 (No longer supported) | 5.6, 5.5, 5.1, 5.0 |
Connector/Net | 6.1 (No longer supported) | 5.6, 5.5, 5.1, 5.0 |
Connector/Net | 6.0 (No longer supported) | 5.6, 5.5, 5.1, 5.0 |
Connector/Net | 5.2 (No longer supported) | 5.6, 5.5, 5.1, 5.0 |
Connector/Net | 1.0 (No longer supported) | 5.0, 4.0 |
Connector/ODBC | 5.1 | 5.6, 5.5, 5.1, 5.0, 4.1.1+ |
Connector/ODBC | 3.51 (Unicode not supported) | 5.6, 5.5, 5.1, 5.0, 4.1 |
Connector/Python | 2.0 | 5.7, 5.6, 5.5 |
Connector/Python | 1.2 | 5.7, 5.6, 5.5 |