第 27 章连接器和 API

目录

MySQL 连接器为 Client 端程序提供与 MySQL 服务器的连接。 API 使用传统的 MySQL 协议或 X 协议提供对 MySQL 资源的低级访问。连接器和 API 都使您能够连接和执行来自另一种语言或环境的 MySQL 语句,包括 ODBC,Java(JDBC),C,Python,PHP,Perl,Ruby 和本机 C 和嵌入式 MySQL 实例。

MySQL Connectors

Oracle 开发了许多连接器:

适用于 Visual Studio 的 MySQL可与 Connector/NET 和 Microsoft Visual Studio 2012、2013、2015 和 2017 配合使用。MySQL for Visual Studio 提供对来自 Visual Studio 的 MySQL 对象和数据的访问。作为 Visual Studio 软件包,它直接集成到 Server Explorer 中,从而能够创建新连接并使用 MySQL 数据库对象。

MySQL C API

为了直接在 C 应用程序中直接访问使用 MySQL 的方法,有两种方法:

libmysqlclient包含在 MySQL 发行版中。

libmysqld包含在 MySQL 发行版中。

Note

从 MySQL 5.7.19 开始不推荐使用libmysqld嵌入式服务器库,并将在 MySQL 8.0 中将其删除。

另请参见第 27.7.1 节“ MySQL C API 实现”

要从 C 应用程序访问 MySQL,或使用本章中的连接器或 API 不支持的语言构建与 MySQL 的接口,请以C API作为起点。可以使用许多程序员的 Util 来帮助完成该过程。参见第 4.7 节“程序开发 Util”

第三方 MySQL API

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

所有第三方语言 API 都是使用两种方法之一(使用libmysqlclient或通过实施本机驱动程序)开发的。两种解决方案具有不同的优势:

table27.1,“ MySQL API 和接口”列出了许多可用于 MySQL 的库和接口。

table27.1 MySQL API 和接口

Environment API Type Notes
Ada GNU Ada MySQL 绑定 libmysqlclient See GNU Ada 的 MySQL 绑定
C C API libmysqlclient See 第 27.7 节“ MySQL C API”.
C++ Connector/C++ libmysqlclient See MySQL Connector/C 8.0 开发人员指南.
MySQL++ libmysqlclient See MySQL++ website.
MySQL wrapped libmysqlclient See MySQL wrapped.
Cocoa MySQL-Cocoa libmysqlclient 与 Objective-C 可可环境兼容。见http://mysql-cocoa.sourceforge.net/
D MySQL 的 D libmysqlclient See MySQL 的 D.
Eiffel Eiffel MySQL libmysqlclient See 第 27.13 节“ MySQL Eiffel Wrapper”.
Erlang erlang-mysql-driver libmysqlclient See erlang-mysql-driver.
Haskell Haskell MySQL 绑定 Native Driver See Brian O'Sullivan 的纯 Haskell MySQL 绑定.
hsql-mysql libmysqlclient See Haskell 的 MySQL 驱动程序.
Java/JDBC Connector/J Native Driver See MySQL Connector/J 5.1 开发人员指南.
Kaya MyDB libmysqlclient See MyDB.
Lua LuaSQL libmysqlclient See LuaSQL.
.NET/Mono Connector/NET Native Driver See MySQL Connector/NET 开发人员指南.
Objective Caml 客体的 Caml MySQL 绑定 libmysqlclient See 用于目标 Caml 的 MySQL 绑定.
Octave GNU Octave 的数据库绑定 libmysqlclient See GNU Octave 的数据库绑定.
ODBC Connector/ODBC libmysqlclient See MySQL Connector/ODBC 开发人员指南.
Perl DBI / DBD::mysql libmysqlclient See 第 27.9 节“ MySQL Perl API”.
Net::MySQL Native Driver 请参见 CPAN Net::MySQL
PHP mysqlext/mysql界面(已弃用) libmysqlclient See 原始 MySQL API.
mysqliext/mysqli界面 libmysqlclient See MySQL 改进扩展.
PDO_MYSQL libmysqlclient See MySQL 函数(PDO_MYSQL).
PDO mysqlnd Native Driver
Python Connector/Python Native Driver See MySQL Connector/Python 开发人员指南.
Python 连接器/ Python C 扩展 libmysqlclient See MySQL Connector/Python 开发人员指南.
MySQLdb libmysqlclient See 第 27.10 节“ MySQL Python API”.
Ruby MySQL/Ruby libmysqlclient 使用libmysqlclient。参见第 27.11.1 节“ MySQL/Ruby API”
Ruby/MySQL Native Driver See 第 27.11.2 节“ Ruby/MySQL API”.
Scheme Myscsh libmysqlclient See Myscsh.
SPL sql_mysql libmysqlclient See sql_mysql 用于 SPL.
Tcl MySQLtcl libmysqlclient See 第 27.12 节“ MySQL Tcl API”.
首页