官方文档地址: Chapter 29 Connectors and APIs
29.1 MySQL Connector/C++
29.2 MySQL Connector/J
29.3 MySQL Connector/NET
29.4 MySQL Connector/ODBC
29.5 MySQL Connector/Python
29.6 MySQL Connector/Node.js
29.7 MySQL C API
29.8 MySQL PHP API
29.9 MySQL Perl API
29.10 MySQL Python API
29.11 MySQL Ruby APIs
29.12 MySQL Tcl API
29.13 MySQL Eiffel Wrapper
MySQL 连接器为客户端程序提供到 MySQL Server 的连接。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 语言编写。
MySQL for Visual Studio 与Connector/NET
和 Microsoft Visual Studio 2012、2013、2015 和 2017 兼容。MySQL for Visual Studio 提供从 Visual Studio 访问 MySQL 对象和数据。作为一个 Visual Studio 包,它直接集成到 Server Explorer 中,提供了创建新连接和使用 MySQL 数据库对象的能力。Connector/ODBC
提供了使用开放数据库连接(ODBC) API 连接 MySQL 的驱动程序支持。支持来自 Windows、Unix 和 macOS 平台的 ODBC 连接。Connector/Python
提供了从 Python 应用程序连接到 MySQL 的驱动程序支持,使用的 API 与 Python DB API 2.0 版本兼容。不需要额外的 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 这里开始。许多程序员的实用程序可以帮助这个过程;参见 4.7 程序开发实用程序。
第三方 MySQL API
本章中描述的其他 API 提供了从特定应用语言到 MySQL 的接口。Oracle 不开发或支持这些第三方解决方案。关于它们的用法和能力的基本信息仅供参考。
所有的第三方语言 API 都是使用以下两种方法之一开发的,一种是使用libmysqlclient
,另一种是实现本地驱动程序。这两种解决方案有各自不同的特点:
- 使用
libmysqlclient
提供了与 MySQL 的完全兼容性,因为它使用了与 MySQL 客户端应用程序相同的库。然而,该特性集仅限于通过libmysqlclient
公开的实现和接口,并且由于数据在本地语言和 MySQL API 组件之间复制,性能可能会较低。 - 本地驱动程序是 MySQL 网络协议完全在宿主语言或环境中的实现。本机驱动程序速度很快,因为组件之间的数据复制更少,而且它们可以提供标准 MySQL API 无法提供的高级功能。本地驱动程序对于终端用户来说也更容易构建和部署,因为构建本地驱动程序组件不需要 MySQL 客户端库的副本。
下表列出了许多 MySQL 可用的库和接口。
环境 | API | 类型 | 备注 |
---|---|---|---|
Ada | GNU Ada MySQL Bindings | libmysqlclient | 参见 MySQL 绑定 GNU Ada。 |
C | C API | libmysqlclient | 参见 MySQL 8.0 C API 开发者指南。 |
C++ | Connector/C++ | libmysqlclient | 参见 MySQL Connector/C++ 8.0 开发者指南。 |
MySQL++ | libmysqlclient | 参见 MySQL++ 网站。 | |
MySQL wrapped | libmysqlclient | 参见 MySQL 包装。 | |
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 Wrapper。 |
Erlang | erlang-mysql-driver | libmysqlclient | 参见 erlang-mysql-driver。 |
Haskell | Haskell MySQL Bindings | Native Driver | 参见 Brian O’Sullivan 的纯 Haskell MySQL 绑定。 |
hsql-mysql | libmysqlclient | 参见 MySQL driver for Haskell。 | |
Java/JDBC | Connector/J | Native Driver | 参见 MySQL Connector/J 5.1 开发者指南. |
Kaya | MyDB | libmysqlclient | 参见 MyDB。 |
Lua | LuaSQL | libmysqlclient | 参见 LuaSQL。 |
.NET/Mono | Connector/NET | Native Driver | 参见 MySQL Connector/NET 开发者指南。 |
Objective Caml | OBjective Caml MySQL Bindings | libmysqlclient | 参见 MySQL Bindings for Objective Caml。 |
Octave | Database bindings for GNU Octave | libmysqlclient | 参见 GNU Octave 的数据库绑定。 |
ODBC | Connector/ODBC | libmysqlclient | 参见 MySQL Connector/ODBC 开发者指南。 |
Perl | DBI/DBD::mysql | libmysqlclient | 参见 29.9 MySQL Perl API。 |
Net::MySQL | Native Driver | 参见 Net::MySQL at CPAN。 | |
PHP | mysql, ext/mysql interface (deprecated) | libmysqlclient | 参见 原始的 MySQL API。 |
mysqli, ext/mysqli interface | libmysqlclient | 参见 MySQL 改进的扩展。 | |
PDO_MYSQL | libmysqlclient | 参见 MySQL Functions (PDO_MYSQL)。 | |
PDO mysqlnd | Native Driver | ||
Python | Connector/Python | Native Driver | 参见 MySQL Connector/Python 开发者指南。 |
Python | Connector/Python C Extension | libmysqlclient | 参见 MySQL Connector/Python 开发者指南。 |
MySQLdb | libmysqlclient | 参见 29.10 MySQL Python API。 | |
Ruby | MySQL/Ruby | libmysqlclient | 使用libmysqlclient 。参见 29.11.1 The MySQL/Ruby API。 |
Ruby/MySQL | Native Driver | 参见 29.11.2 The Ruby/MySQL API。 | |
Scheme | Myscsh | libmysqlclient | 参见 Myscsh。 |
SPL | sql_mysql | libmysqlclient | 参见 sql_mysql for SPL。 |
Tcl | MySQLtcl | libmysqlclient | 参见 29.12 MySQL Tcl API。 |