第 27 章连接器和 API

目录

  • 27.1 MySQL Connector/C

  • 27.2 MySQL Connector/C

  • 27.3 MySQL Connector/J

  • 27.4 MySQL Connector/NET

  • 27.5 MySQL Connector/ODBC

  • 27.6 MySQL Connector/Python

  • 27.7 libmysqld,嵌入式 MySQL 服务器 Library

  • 27.8 MySQL C API

  • 27.9 MySQL PHP API

  • 27.10 MySQL Perl API

  • 27.11 MySQL Python API

  • 27.12 MySQL Ruby API

  • 27.13 MySQL Tcl API

  • 27.14 MySQL Eiffel Wrapper

MySQL 连接器为 client 程序提供与 MySQL 服务器的连接。 API 提供对 MySQL 协议和 MySQL 资源的 low-level 访问。连接器和 API 使您能够从另一种语言或环境连接和执行 MySQL statements,包括 ODBC,Java(JDBC),Perl,Python,PHP,Ruby 以及本机 C 和嵌入式 MySQL 实例。

MySQL 连接器

Oracle 开发了许多连接器:

  • Connector/C是 MySQL Client Library(libmysqlclient)的独立替代品,用于 C 应用程序。

  • Connector/C使 C applications 能够连接到 MySQL。

  • Connector/J使用标准 Java 数据库连接(JDBC)API 为 Java applications 中的连接到 MySQL 提供驱动程序支持。

  • Connector/NET使开发人员能够创建连接到 MySQL 的.NET applications。 Connector/NET 实现了一个功能齐全的 ADO.NET 接口,并为使用 ADO.NET 感知工具提供支持。 使用 Connector/NET 的应用程序可以用任何支持的.NET 语言编写。

MySQL for Visual Studio适用于 Connector/NET 和 Microsoft Visual Studio 2012,2013,2015 和 2017.用于 Visual Studio 的 MySQL 提供对 Visual Studio 中 MySQL objects 和数据的访问。作为 Visual Studio 软件包,它直接集成到服务器资源管理器中,提供了创建新连接和使用 MySQL 数据库 objects 的能力。

  • Connector/ODBC使用开放式数据库连接(ODBC)API 为连接到 MySQL 提供驱动程序支持。支持来自 Windows,Unix 和 OS X 平台的 ODBC 连接。

  • Connector/Python使用符合Python DB API version 2.0的 API 为 Python applications 的连接到 MySQL 提供驱动程序支持。不需要额外的 Python 模块或 MySQL client libraries。

MySQL C API

要在 C application 中直接访问本机使用 MySQL,有两种方法:

  • C API通过libmysqlclient client library 提供对协议的 low-level 访问。这是用于连接 MySQL 服务器实例的主要方法,MySQL command-line clients 和许多 MySQL 连接器以及此处详述的 third-party API 都使用它。

    libmysqlclient包含在 MySQL 发行版和 Connector/C 发行版中。

  • libmysqld是一个嵌入式 MySQL 服务器 library,它允许您将 MySQL 服务器的实例嵌入到 C applications 中。

    libmysqld包含在 MySQL 发行版中,但不包含在 Connector/C 发行版中。

注意
从 MySQL 5.7.19 开始,libmysqld嵌入式服务器 library 已被弃用,将在 MySQL 8.0 中删除。

另见第 27.8.1 节,“MySQL C API Implementations”。

要从 C application 访问 MySQL,或者使用本章中的连接器或 API 不支持的语言为 MySQL 构建接口,C API就是从哪里开始的。许多程序员的实用程序可用于帮助 process;见第 4.7 节,“MySQL 程序开发实用程序”。

Third-Party MySQL API

本章中描述的其余 API 提供了来自特定 application 语言的 MySQL 接口。 Oracle 不开发或支持这些 third-party 解决方案。此处提供了有关其使用和能力的基本信息,仅用于参考目的。

所有 third-party 语言 API 都是使用两种方法之一开发的,使用libmysqlclient或实现本机驱动程序。这两种解决方案具有不同的优势

  • 使用libmysqlclient提供与 MySQL 的完全兼容性,因为它使用与 MySQL client applications 相同的 libraries。但是,feature 集仅限于 implementation 和通过libmysqlclient公开的接口,并且 performance 可能会更低,因为数据是在本机语言和 MySQL API 组件之间复制的。

  • 本机驱动程序是完全在 host 语言或环境中实现的 MySQL 网络协议。本机驱动程序很快,因为组件之间的数据复制较少,并且它们可以提供标准 MySQL API 无法提供的高级功能。本地驱动程序也更容易让最终用户进行 build 和部署,因为 build 本机驱动程序组件不需要 MySQL client libraries 的副本。

Table 27.1,“MySQL API 和接口” 列出了许多适用于 MySQL 的 libraries 和接口。

表 27.1 MySQL API 和接口

环境API类型笔记
阿达GNU Ada MySQL 绑定libmysqlclient见GNU Ada 的 MySQL 绑定
CC APIlibmysqlclient见第 27.8 节,“MySQL C API”。
CConnector/C更换libmysqlclient见MySQL Connector/C 开发人员指南。
CConnector/Clibmysqlclient见MySQL Connector/C 8.0 开发人员指南。
MySQLlibmysqlclient见MySQL 网站。
MySQL 包装好了libmysqlclient见MySQL 包装好了。
可可MySQL-Cocoalibmysqlclient与 Objective-C Cocoa 环境兼容。见http://mysql-cocoa.sourceforge.net/
dMySQL for D.libmysqlclient见MySQL for D.。
艾菲尔Eiffel MySQLlibmysqlclient见第 27.14 节,“MySQL Eiffel Wrapper”。
二郎神erlang-mysql-driverlibmysqlclient见erlang-mysql-driver。
哈斯克尔Haskell MySQL 绑定本机驱动程序见Brian O'Sullivan 的纯 Haskell MySQL 绑定。
hsql-mysqllibmysqlclient见Haskell 的 MySQL 驱动程序。
Java/JDBCConnector/J本机驱动程序见MySQL Connector/J 5.1 开发人员指南。
卡亚MYDBlibmysqlclient见MYDB。
LUALuaSQLlibmysqlclient见LuaSQL。
.NET/MonoConnector/NET本机驱动程序见MySQL Connector/NET 开发人员指南。
目标 Caml目标 Caml MySQL 绑定libmysqlclient见Objective Caml 的 MySQL 绑定。
八度GNU Octave 的数据库绑定libmysqlclient见GNU Octave 的数据库绑定。
ODBCConnector/ODBClibmysqlclient见MySQL Connector/ODBC 开发人员指南。
PerlDBI / DBD::mysqllibmysqlclient见第 27.10 节,“MySQL Perl API”。
Net::MySQL本机驱动程序请参阅 CPAN 的Net::MySQL
PHPmysqlext/mysql接口(不建议使用)libmysqlclient见原始的 MySQL API。
mysqliext/mysqli接口libmysqlclient见MySQL 改进扩展。
PDO_MYSQLlibmysqlclient见MySQL 函数(PDO_MYSQL)。
PDO mysqlnd本机驱动程序
蟒蛇Connector/Python本机驱动程序见MySQL Connector/Python 开发人员指南。
蟒蛇Connector/Python C 扩展libmysqlclient见MySQL Connector/Python 开发人员指南。
MySQLdblibmysqlclient见第 27.11 节,“MySQL Python API”。
红宝石MySQL/Rubylibmysqlclient使用libmysqlclient。见第 27.12.1 节,“MySQL/Ruby API”。
Ruby/MySQL本机驱动程序见第 27.12.2 节,“Ruby/MySQL API”。
方案Myscshlibmysqlclient见Myscsh。
SPLsql_mysqllibmysqlclient见SPL 为 sql_mysql。
TCLMySQLTcllibmysqlclient见第 27.13 节,“MySQL Tcl API”。