MySQL 8.4 参考手册  /  连接器和 API

第 31 章 连接器和 API

MySQL 连接器为客户端程序提供与 MySQL 服务器的连接。API 提供使用经典 MySQL 协议或 X 协议对 MySQL 资源的底层访问。连接器和 API 都使您能够从其他语言或环境连接和执行 MySQL 语句,包括 ODBC、Java (JDBC)、C++、Python、Node.js、PHP、Perl、Ruby 和 C。

MySQL 连接器

Oracle 开发了许多连接器

  • Connector/C++ 使 C++ 应用程序能够连接到 MySQL。

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

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

  • Connector/ODBC 提供了使用开放数据库连接 (ODBC) API 连接到 MySQL 的驱动程序支持。支持从 Windows、Unix 和 macOS 平台进行 ODBC 连接。

  • Connector/Python 提供了使用符合 Python DB API 版本 2.0 的 API 从 Python 应用程序连接到 MySQL 的驱动程序支持。不需要额外的 Python 模块或 MySQL 客户端库。

  • Connector/Node.js 提供了一个异步 API,用于使用 X 协议从 Node.js 应用程序连接到 MySQL。Connector/Node.js 支持管理数据库会话和模式、使用 MySQL 文档存储集合以及使用原始 SQL 语句。

MySQL C API

为了直接在 C 应用程序中本地使用 MySQL,C API 通过 libmysqlclient 客户端库提供了对 MySQL 客户端/服务器协议的低级访问。这是连接到 MySQL 服务器实例的主要方法,MySQL 命令行客户端和此处详述的许多 MySQL 连接器和第三方 API 都使用这种方法。

libmysqlclient 包含在 MySQL 发行版中。

另请参阅 MySQL C API 实现

要从 C 应用程序访问 MySQL,或者为本章中连接器或 API 不支持的语言构建 MySQL 接口,请从 C API 开始。许多程序员实用程序可用于帮助完成此过程;请参阅 第 6.7 节,“程序开发实用程序”

第三方 MySQL API

本章中描述的其余 API 提供了从特定应用程序语言访问 MySQL 的接口。这些第三方解决方案不是由 Oracle 开发或支持的。此处仅供参考,提供了有关其用途和功能的基本信息。

所有第三方语言 API 都是使用以下两种方法之一开发的:使用 libmysqlclient 或实现 本机驱动程序。这两种解决方案提供了不同的优势

  • 使用 libmysqlclient 提供了与 MySQL 的完全兼容性,因为它使用与 MySQL 客户端应用程序相同的库。但是,功能集仅限于通过 libmysqlclient 公开的实现和接口,并且性能可能会降低,因为数据是在本机语言和 MySQL API 组件之间复制的。

  • 本机驱动程序 是完全在本机语言或环境中实现的 MySQL 网络协议。本机驱动程序速度很快,因为组件之间的数据复制较少,并且它们可以提供标准 MySQL API 中没有的增强功能。本机驱动程序也更容易构建和部署,因为构建本机驱动程序组件不需要 MySQL 客户端库的副本。

表 31.1,“MySQL API 和接口” 列出了许多可用于 MySQL 的库和接口。

表 31.1 MySQL API 和接口

环境 API 类型 备注
Ada GNU Ada MySQL 绑定 libmysqlclient 请参阅 GNU Ada 的 MySQL 绑定
C C API libmysqlclient 请参阅 MySQL 8.4 C API 开发人员指南
C++ Connector/C++ libmysqlclient 请参阅 MySQL Connector/C++ 9.0 开发人员指南
MySQL++ libmysqlclient 请参阅 MySQL++ 网站
MySQL 包装器 libmysqlclient 请参阅 MySQL 包装器
Cocoa MySQL-Cocoa libmysqlclient 与 Objective-C Cocoa 环境兼容。请参阅 http://mysql-cocoa.sourceforge.net/
D D 的 MySQL libmysqlclient 请参阅 D 的 MySQL
Eiffel Eiffel MySQL libmysqlclient 请参阅 第 31.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 开发人员指南
Kaya MyDB libmysqlclient 请参阅 MyDB
Lua LuaSQL libmysqlclient 请参阅 LuaSQL
.NET/Mono Connector/NET 本机驱动程序 请参阅 MySQL Connector/NET 开发人员指南
Objective Caml OBjective Caml MySQL 绑定 libmysqlclient 请参阅 Objective Caml 的 MySQL 绑定
Octave GNU Octave 的数据库绑定 libmysqlclient 请参阅 GNU Octave 的数据库绑定
ODBC Connector/ODBC libmysqlclient 请参阅 MySQL Connector/ODBC 开发人员指南
Perl DBI/DBD::mysql libmysqlclient 请参阅 第 31.9 节,“MySQL Perl API”
Net::MySQL 本机驱动程序 请参阅 CPAN 上的 Net::MySQL
PHP mysql, ext/mysql 接口(已弃用) libmysqlclient 请参阅 MySQL 和 PHP
mysqli, ext/mysqli 接口 libmysqlclient 请参阅 MySQL 和 PHP
PDO_MYSQL libmysqlclient 请参阅 MySQL 和 PHP
PDO mysqlnd 本机驱动程序
Python Connector/Python 本机驱动程序 请参阅 MySQL Connector/Python 开发人员指南
Python Connector/Python C 扩展 libmysqlclient 请参阅 MySQL Connector/Python 开发人员指南
MySQLdb libmysqlclient 请参阅 第 31.10 节,“MySQL Python API”
Ruby mysql2 libmysqlclient 使用 libmysqlclient。请参阅 第 31.11 节,“MySQL Ruby API”
Scheme Myscsh libmysqlclient 请参阅 Myscsh
SPL sql_mysql libmysqlclient 请参阅 SPL 的 sql_mysql
Tcl MySQLtcl libmysqlclient 请参阅 第 31.12 节,“MySQL Tcl API”